我想知道如果我在我的构造函数中订阅了这样的流:
_eventEmitterService.event.subscribe((msg)=>{})
因此,当我将视图更改为不同的组件并返回时,事件将从该流触发两次。每次更改组件时,是否需要使用ngOnDestroy
?
由于
答案 0 :(得分:13)
我找到了!是的,根据angular2 lifecycle-hook
指南中所述的文档:
<强> ngOnDestroy 强>
就在Angular破坏指令/组件之前进行清理。取消订阅observable并分离事件处理程序以避免内存泄漏。
所以是的,您需要取消订阅ngOnDestroy()
答案 1 :(得分:5)
再一次暗示皮埃尔的好回答。 async
管道自动取消订阅它所应用的可观察对象。因此,您需要取消订阅您自己管理的可观察项目。
在源代码中查看此行: