在我的ngOnInit方法中,我这样订阅Router:
this.router.events.subscribe(
event => {
if (event instanceof NavigationEnd) this.clearMessages();
}
);
Run Code Online (Sandbox Code Playgroud)
通常,对于HttpClient包之外的Observables,我在ngOnDestroy方法中调用unsubscribe,但是当我在此处尝试尝试取消订阅时,我发现this.router.events没有这种方法。我是否误解了这个Observable或其他内容?为什么取消订阅不会被执行?
Max*_*kyi 10
我发现this.router.events没有这种方法
您调用的unsubscribe是订阅,而不是可观察的。并且this.router.events是可观察的,而不是订阅。因此,以下方法将起作用:
const subscription = this.router.events.subscribe(...);
subscription.unsubscribe();
Run Code Online (Sandbox Code Playgroud)
你是对的,一些 observables 不需要手动取消订阅,observables 像:
first()也可以在这个 reddit 网站上找到类似的信息。这也意味着无需担心这些类中可观察对象的内存泄漏。
| 归档时间: |
|
| 查看次数: |
5252 次 |
| 最近记录: |