我需要建議。我對 RxJS 很陌生,所以我想正確使用它。我需要從 API 獲取兩個不同的陣列。我想只有當它們都完成時才完成此操作,因為我需要將它們發送到子組件(子組件有兩個相互依賴的不同串列框)。
我想將這些 Observable 存盤在:
departments$: Observable<IDepartment[]>;
workers$: Observable<IWorker[]>;
此問題的解決方案:
departments$ = this.http.get<string[]>('api/departments')
.pipe(
tap(data => console.log(JSON.stringify(data))),
catchError(this.handleError)
);
workers$ = this.http.get<string[]>('api/workers')
.pipe(
tap(data => JSON.stringify(data))),
catchError(this.handleError)
);
departmentsAndWorkers$ = forkJoin({
departments$: this.departments$,
workers$: this.workers$
})
.pipe(
tap(data => console.log(JSON.stringify(data))),
catchError(this.handleError)
)
uj5u.com熱心網友回復:
您正在尋找forkJoinRxJS 運算子。當所有請求完成時,它將發出一個元組值。閱讀更多相關資訊:https : //www.learnrxjs.io/learn-rxjs/operators/combination/forkjoin
uj5u.com熱心網友回復:
您可以嘗試像這樣使用 forkJoin:
forkJoin([departments$,workers$]).subscribe((resp: any) => {
// resp[0] : departments$
// resp[1] : workers$
},
errors=>{
}
});
uj5u.com熱心網友回復:
您可以使用 forkJoin:等待 Observables 完成,然后組合它們發出的最后一個值;如果傳遞空陣列,則立即完成。 https://rxjs.dev/api/index/function/forkJoin
或 combineLatest:每當任何輸入 Observable 發出一個值時,它都會使用來自所有輸入的最新值計算一個公式,然后發出該公式的輸出。 https://rxjs.dev/api/index/function/combineLatest
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392323.html
上一篇:角度路由-我沒有錯誤,但我無法進行路由。我看到白屏并且沒有錯誤
下一篇:用戶注冊時如何在警報中顯示自動生成的(在資料庫中)主鍵accountNumber?Angular(前端)和web-api(后端)
