【发布时间】:2019-04-19 21:52:35
【问题描述】:
在我的 Angular 组件的 ngOnDestroy 回调中为每个 Output() EventEmitter 调用 complete() 方法是一种好习惯吗? 这样,当组件被销毁时,对这些输出的任何订阅都会直接结束。而且在大多数情况下,我不必再担心在父组件中取消订阅。你怎么看?
示例
我有一个父组件订阅子组件的输出事件。 我通常这样做:
childCompoment.event.pipe(
takeUntil(this.parentComponentDestroyed$), // end subscription when parent is destroyed
).subscribe((eventData: any) => {
// do stuff
});
}
现在,如果子组件被销毁,这不会自动结束我的父订阅。我必须等到父组件自己销毁。 如果我在子组件的 OnDestroy 回调中调用 event.complete(),那么我的订阅将在子组件被销毁后立即结束。 在这种情况下,最好的方法是什么?
【问题讨论】:
标签: angular