【发布时间】:2021-04-09 09:46:45
【问题描述】:
我有两个可观察对象,我想将它们合并到来自rxjs 的forkJoin 方法中。独立执行 observables 可以工作,但使用 forkJoin 无法达到 pipe finalize/subscribe 方法。
我的.component.ts
....
const req1 = this.userService.getUser(this.loggedInUser.userId);
const req2 = this.boardGames$;
this.subscriptions$ = forkJoin([req1, req2])
.pipe(
finalize(() => {
console.log('pipe'); // Is not reached
})
)
.subscribe(([obj1, obj2]) => {
console.log('subscribe'); // Is not reached
}, err => console.log(err), ()=>console.log('compl'));
req1.subscribe((aa) => console.log(aa)); // This is logged
req2.subscribe((bb) => console.log(bb)); // This is logged
....
我正在使用Angularfire2 进行请求。我不确定这是否会成为问题,因为订阅独立工作。
import { AngularFirestore } from 'angularfire2/firestore';
我在这里缺少什么?
【问题讨论】:
-
这是因为我想取消订阅组件的销毁。不幸的是,这没有帮助
-
这也没有打印任何东西
-
Stackblitz 就像一个在线编辑器,您可以通过在其中编写代码然后共享 url 来复制问题。 Stackblitz
-
你的一个源 Observables
req1或req2永远不会完成,所以forkJoin()不会发出任何东西 -
@martin 事件虽然最后两行有效?
标签: angular rxjs observable subscription fork-join