我正在建立一个应用程序使用Angular +离子。当我使用异步管道在模板中的observable中显示数据时。我的理解是,当组件被销毁时,Angular会自动取消订阅可观察对象,但是,如果我移动到另一个页面,ngOnDestroy事件不会被触发。这是否意味着我没有取消订阅*******可观察对象?谢谢!
bxfogqkk1#
unsubscribe和ngOnDestroy是两个不同的概念:
unsubscribe
ngOnDestroy
async管道会自动取消订阅提供给它们的观察对象:但这不是因为ngOnDestroy函数。如果您的函数没有被触发,则意味着您没有破坏组件,或者您遇到了问题。如果是,请提供一个沙箱来复制它,例如在https://stackblitz.com上
async
olmpazwi2#
Ionic堆栈视图,因此最好的方法是在ionViewDidLeave生命周期钩子中手动销毁订阅。
2条答案
按热度按时间bxfogqkk1#
unsubscribe
和ngOnDestroy
是两个不同的概念:unsubscribe
关闭观察流:订阅不会侦听新事件ngOnDestroy
在指令被销毁(从DOM中删除)时运行async
管道会自动取消订阅提供给它们的观察对象:但这不是因为ngOnDestroy
函数。如果您的函数没有被触发,则意味着您没有破坏组件,或者您遇到了问题。
如果是,请提供一个沙箱来复制它,例如在https://stackblitz.com上
olmpazwi2#
Ionic堆栈视图,因此最好的方法是在ionViewDidLeave生命周期钩子中手动销毁订阅。