我想使用forkJoin并組合它們的結果并行運行一些請求,如下所示。但是,當其中一個請求失敗時,瀏覽器會自動取消其余訂閱。有什么簡單的替代方法forkJoin可以讓我并行運行請求,如果一個訂閱失敗,其余的可以完成?
const posts = this.http.get("https://myApi.com/posts?userId=1");
const albums = this.http.get("https://myApi.com/albums?userId=1");
forkJoin([posts, albums]).subscribe((result) => {
this.print(result[0], result[1]);
});
print(res1, res2) {
const message = res1.text res2.text;
console.log(message);
}
uj5u.com熱心網友回復:
您可以使用 來實作,但是,您必須單獨forkJoin處理每個子的錯誤,以防止在發生任何錯誤時取消流。ObservablecatchError
您可以嘗試以下方法:
// import { catchError } from 'rxjs/operators';
// import { forkJoin, of } from 'rxjs';
const posts = this.http
.get('https://myApi.com/posts?userId=1')
.pipe(catchError((err) => of(err)));
const albums = this.http
.get('https://myApi.com/albums?userId=1')
.pipe(catchError((err) => of(err)));
forkJoin([posts, albums]).subscribe((result) => {
this.print(result[0], result[1]);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/426133.html
標籤:javascript 有角度的 打字稿 rxjs 可观察的
