【发布时间】:2019-08-20 09:50:12
【问题描述】:
取消订阅多个角度观察的最佳策略是什么?需要明确的是,当应用程序不大并且不需要像 ngrx 这样的解决方案时,我会使用这种方法,在这种情况下会是 过度工程.
目前我使用订阅实例来添加所有订阅,然后当组件被销毁时我调用取消订阅方法。但我也看到了使用 rxjs 中的 takeUntil 的替代方法。
export class MyComponent implements OnInit, OnDestroy {
$firstObservable: Observable<number> = timer(0, 1000);
$secondObservable: Observable<number> = timer(0, 1000);
private _subscriptions = new Subscription();
constructor() { }
ngOnDestroy(): void {
this._subscriptions .unsubscribe();
}
ngOnInit(): void {
this._subscriptions .add(
this.$firstObservable.subscribe(console.log));
this._subscriptions .add(
this.$secondObservable.subscribe(console.log));
}
}
最好的解决方案是什么?
【问题讨论】:
-
您可以将所有这些订阅合并到一个
.subscribe -
takeUntil目前被认为是最佳实践。 -
使用
takeUntil是最简单的方法。顺便说一句,您可以链接this._subscriptions.add().add().add()调用,这样会更短一些。
标签: angular rxjs observable