Var*_*eja 4 observable rxjs angular rxjs-subscriptions rxjs-observables
有很多方法可以在一个组件中有效地处理多个订阅,我在这里有 2 种方法,想知道哪种方法更有效,为什么?
第 1 步:创建数组
private subscriptionArray: Subscription[];
Run Code Online (Sandbox Code Playgroud)
第 2 步:向数组添加订阅
this.subscriptionArray.push(this._storeManagementHttp.createStore(newStore).subscribe(resp => {
this._toast.success('New store created');
}));
Run Code Online (Sandbox Code Playgroud)
第 3 步:迭代每个订阅和取消订阅
this.subscriptionArray.forEach(subs => subs.unsubscribe());
Run Code Online (Sandbox Code Playgroud)
第 1 步:创建新订阅
private subscriptions = new Subscription();
Run Code Online (Sandbox Code Playgroud)
第 2 步:添加订阅
this.subscriptions.add(this._storeManagementHttp.createStore(newStore).subscribe(resp => {
this._toast.success('New store created');
this._router.navigate(['/store-management']);
}));
Run Code Online (Sandbox Code Playgroud)
Step3:清除订阅
this.subscriptions.unsubscribe();
Run Code Online (Sandbox Code Playgroud)
你也可以这个,在这种情况下你不需要运行循环
private destroy$ = new Subject();
myservice.megohd().pipe(takeUntil(destroy$)).subscribe();
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
Run Code Online (Sandbox Code Playgroud)
在这里阅读(https://www.learnrxjs.io/operators/filtering/takeuntil.html)
| 归档时间: |
|
| 查看次数: |
5340 次 |
| 最近记录: |