我使用accepted pattern取消订阅我的订阅:
private ngUnsubscribe: Subject<void> = new Subject();
ngOnDestroy() {
this.ngUnsubscribe.next();
this.ngUnsubscribe.complete();
}
但是,我使用takeUntil
和combineLatest
来解决以下rxjs代码问题:
this.observableA$.pipe(
takeUntil(this.ngUnsubscribe),
combineLatest(
this.observableB$,
this.observableC$
)
).subscribe(([A, B, C]) => {
// do some work
})
此订阅似乎是持久的,因为我可以看到代码在销毁并重新初始化后多次触发。任何帮助将不胜感激。
答案 0 :(得分:2)
您的内部observableB和observableC未取消订阅。尝试重新安排运营商:
combineLatest(
this.observableB$,
this.observableC$
),
takeUntil(this.ngUnsubscribe)