Angular 角度-在Ngondestory中调用时是否保证输出?
标题说明了一切。。。在OnDestroy生命周期中调用时,是否保证发出输出 我知道它是有效的,因为我已经测试过了,但我只需要一个保证或建议,否则为什么要避免这样做Angular 角度-在Ngondestory中调用时是否保证输出?,angular,Angular,标题说明了一切。。。在OnDestroy生命周期中调用时,是否保证发出输出 我知道它是有效的,因为我已经测试过了,但我只需要一个保证或建议,否则为什么要避免这样做 谢谢。这个问题的最终答案可能应该来自一位棱角分明的团队成员。然而,似乎可以安全地假设事件将被交付。记住,onNgDestroy不是关于销毁组件的实例;这是关于组件作为视图结构中的组件结束其生命周期。只要另一个组件正在“订阅”相关组件的@Output属性,就不应该对组件实例进行垃圾收集,这意味着它及其发射器属性应该是安全的,并在事件交付
谢谢。这个问题的最终答案可能应该来自一位棱角分明的团队成员。然而,似乎可以安全地假设事件将被交付。记住,
onNgDestroy
不是关于销毁组件的实例;这是关于组件作为视图结构中的组件结束其生命周期。只要另一个组件正在“订阅”相关组件的@Output
属性,就不应该对组件实例进行垃圾收集,这意味着它及其发射器属性应该是安全的,并在事件交付之前继续运行
因此,尽管这不是一个“保证”,但似乎可以安全地假设输出将发出。这个问题的最终答案可能应该来自一个有棱角的团队成员。然而,似乎可以安全地假设事件将被交付。记住,
onNgDestroy
不是关于销毁组件的实例;这是关于组件作为视图结构中的组件结束其生命周期。只要另一个组件正在“订阅”相关组件的@Output
属性,就不应该对组件实例进行垃圾收集,这意味着它及其发射器属性应该是安全的,并在事件交付之前继续运行
因此,尽管这不是一个“保证”,但似乎可以安全地假设输出将发射。您不应该以思考的方式依赖它。它不是
ngondestorying
,它的名称表明事件是在任何破坏发生之前触发的。
触发事件时,组件销毁已开始。例如,DOM已经被删除
您可以在此处看到相关讨论:
[更新]
你可以描述(或问新问题)你到底想完成什么,这样我们就可以看到其他的选择。你不应该以你思考的方式依赖它。它不是
ngondestorying
,它的名称表明事件是在任何破坏发生之前触发的。
触发事件时,组件销毁已开始。例如,DOM已经被删除
您可以在此处看到相关讨论:
[更新]
你可以描述(或问新问题)你到底想完成什么,这样我们就可以看到其他选择。我很困惑,不理解这个问题。你能提供一个简单的例子来解释你的问题吗?我很困惑,不理解这个问题。你能提供一个简单的例子来解释你的问题吗?如果他的
Output()
是基于组件中的DOM事件怎么办?@deezg我不理解你的问题。组件中的DOM事件将由执行emit
的常规方法处理,因此我看不出这与ngondestory
相关的问题有什么关系。您可以在ngondestory仍在运行之前/期间删除DOM元素,实际上他将不会向@Output
发射任何东西。正如在我发布的链接讨论中所看到的,ngondestry
文档不精确,而且这里的问题闻起来像是一些潜在的糟糕设计。我仍然不明白。如果dom元素被破坏,它就不能再生成任何事件,那么我们为什么要担心这些事件是否被传递呢?OP的问题似乎是,如果onNgDestroy
中的显式this.emitter.emit()
能够保证传递给听者,正如我所说的,并且OP表明他的实验证实了这一点,我认为会。嗯,这在很大程度上取决于触发emit
的是什么。如果emit
在dom事件处理程序中,并且组件在dom事件发生的同时被销毁,您是否仍然觉得有保证emit
交付?如果他的Output()
是基于组件中的dom事件呢?@deezg我不理解您的问题。组件中的DOM事件将由执行emit
的常规方法处理,因此我看不出这与ngondestory
相关的问题有什么关系。您可以在ngondestory仍在运行之前/期间删除DOM元素,实际上他将不会向@Output
发射任何东西。正如在我发布的链接讨论中所看到的,ngondestry
文档不精确,而且这里的问题闻起来像是一些潜在的糟糕设计。我仍然不明白。如果dom元素被破坏,它就不能再生成任何事件,那么我们为什么要担心这些事件是否被传递呢?OP的问题似乎是,如果onNgDestroy
中的显式this.emitter.emit()
能够保证传递给听者,正如我所说的,并且OP表明他的实验证实了这一点,我认为会。嗯,这在很大程度上取决于触发emit
的是什么。如果emit
在dom事件处理程序中,并且组件在dom事件发生的同时被销毁,您是否仍然觉得可以保证emit
交付?