Angular - 在ngOnDestroy中调用时是否保证输出?

时间:2017-09-10 17:57:59

标签: angular

标题说这一切......是在OnDestroy生命周期中被调用时保证发出的输出吗?

我知道它有效,因为我已经对它进行了测试,但只需要一个保证或建议,否则为什么要避免这样做。

感谢。

2 个答案:

答案 0 :(得分:0)

对这个问题的明确答案可能应该来自Angular团队成员。但是,假设事件传递似乎是安全的。请记住,onNgDestroy不是要破坏组件的实例;它是关于作为视图结构中的组件结束其生命周期的组件。只要另一个组件是"订阅"对于有问题的组件的@Output属性,组件实例不应该被垃圾收集,这意味着它和它的发射器属性应该是安全的并且在事件交付之前继续有效。

因此,虽然这不是"保证",但似乎可以安全地假设输出发出。

答案 1 :(得分:0)

你不应该以你正在考虑它的方式指望它。它不是ngOnDestroying,其名称暗示事件在任何破坏发生之前被触发。 触发事件时,组件销毁已经开始。例如,DOM已被删除。

您可以在此处查看相关讨论: https://github.com/angular/angular/issues/14252

[UPDATE] 您可以描述(或询问新问题)您到底想要完成什么,以便我们可以看到其他选项。