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

uks*_*ksz 9 typescript angular

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

_eventEmitterService.event.subscribe((msg)=>{})
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Pie*_*Duc 13

我找到了!是的,根据angular2 lifecycle-hook指南中的说明,每个文档:


在Angular破坏指令/组件之前的ngOnDestroy清理.取消订阅observable并分离事件处理程序以避免内存泄漏.

所以,是的,您需要取消订阅可观察量 ngOnDestroy()


Thi*_*ier 5

这是皮埃尔的绝佳答案的另一个暗示.该async管道自动退订它适用于观测.因此,您需要取消订阅您自己管理的可观察对象.

在源代码中查看此行: