Ell*_*iot 4 subscription observable rxjs angular
我正在使用接受的模式来取消订阅我的订阅:
private ngUnsubscribe: Subject<void> = new Subject();
ngOnDestroy() {
this.ngUnsubscribe.next();
this.ngUnsubscribe.complete();
}
Run Code Online (Sandbox Code Playgroud)
但是,我在使用以下 rxjs 代码时遇到问题takeUntil和combineLatest:
this.observableA$.pipe(
takeUntil(this.ngUnsubscribe),
combineLatest(
this.observableB$,
this.observableC$
)
).subscribe(([A, B, C]) => {
// do some work
})
Run Code Online (Sandbox Code Playgroud)
此订阅似乎持续存在,因为我可以看到在组件被销毁并重新初始化后多次触发代码。任何帮助将不胜感激。
您的内部 observableB 和 observableC 并未取消订阅。尝试重新安排您的运算符:
combineLatest(
this.observableB$,
this.observableC$
),
takeUntil(this.ngUnsubscribe)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6809 次 |
| 最近记录: |