我是否需要在组件中每次取消订阅onDestroy?

时间:2016-04-22 13:03:49

标签: angular typescript

我想知道如果我在我的构造函数中订阅了这样的流:

_eventEmitterService.event.subscribe((msg)=>{})

因此,当我将视图更改为不同的组件并返回时,事件将从该流触发两次。每次更改组件时,是否需要使用ngOnDestroy

取消订阅

由于

2 个答案:

答案 0 :(得分:13)

我找到了!是的,根据angular2 lifecycle-hook指南中所述的文档:

  

<强> ngOnDestroy
  就在Angular破坏指令/组件之前进行清理。取消订阅observable并分离事件处理程序以避免内存泄漏。

所以是的,您需要取消订阅ngOnDestroy()

上的可观察对象

答案 1 :(得分:5)

再一次暗示皮埃尔的好回答。 async管道自动取消订阅它所应用的可观察对象。因此,您需要取消订阅您自己管理的可观察项目。

在源代码中查看此行: