2

在 Angular 应用程序中,尤其是在使用 NGRX 时,我们有很多 RxJS 订阅。是的,我们(开发人员)可能会忘记取消订阅。是否有任何工具可以帮助分析问题?

4

1 回答 1

0

我知道这不是工具的答案,除了可以在这里使用的浏览器开发工具之外,我什么都不知道。

为了减轻在 Angular 组件中处理取消订阅的痛苦,我使用了以下内容。如果丢失,很容易重构,如果丢失很容易注意到,并且可以用作处理取消订阅的标准方法。

// On Destroy hook
private onDestroy: Subject<void> = new Subject();

在方法中,请记住 take(1) 应该在 takeUntil 之后,这可能是 observable 甚至不会触发一次。

this.regions$.pipe(takeUntil(this.onDestroy)).subscribe(...

当组件被破坏时

public ngOnDestroy() {
    this.onDestroy.next();
    this.onDestroy.complete();
}
于 2018-01-12T07:34:51.063 回答