【发布时间】:2017-11-23 16:56:54
【问题描述】:
我试图弄清楚为什么我看到的所有 Angular 应用程序都将订阅分配给一个变量,而只需要通过 ngOnDestroy() 取消订阅。例如:
export class ViewBookPageComponent implements OnDestroy {
actionsSubscription: Subscription;
constructor(store: Store<fromRoot.State>, route: ActivatedRoute) {
this.actionsSubscription = route.params
.select<string>('id')
.map(id => new book.SelectAction(id))
.subscribe(store);
}
ngOnDestroy() {
this.actionsSubscription.unsubscribe();
}
}
如果我完全删除 actionsSubscription 会发生什么?订阅是否仍会被创建但不会被销毁?在以下情况下,您仍然会得到副作用,但不必费心退订。那么垃圾回收需要 actionsSubscription 吗?
export class ViewBookPageComponent {
constructor(store: Store<fromRoot.State>, route: ActivatedRoute) {
route.params
.select<string>('id')
.map(id => new book.SelectAction(id))
.subscribe(store);
}
}
【问题讨论】:
标签: angular