何时/如何取消订阅:RXJS和Angular Project中的管理订阅



这是我的代码段(示例)

fetchData(): void {
    if (this.subscription$) {
        this.subscription$.unsubscribe();
    }
    this.subscription$ = this.store.select('someEvent')
                                   .subscribe(data => {
                                      console.log(data);
                                   });
}
ngOnDestroy() { 
  this.subscription$.unsubscribe();
}

我需要调用fetchData方法以添加另一个订阅以从store获取当前状态。因此,在这一点上,我已经像上面一样实施了它,以释放上一个订阅。它以我希望它能工作的方式工作,但我觉得代码并不整洁。我正在研究takeUntiltakeWhile,以使代码更加 Rx,但我没有做到。

使用主题来信号破坏

destroyed$=new Subject()
 fetchData(): void {
this.store.select('someEvent').takeUntil(destroyed$)
                               .subscribe(data => {
                                  console.log(data);
                               });
}
ngOnDestroy() { 
   destroy$.next()
}

最新更新