我有以下代码,使用 Angular 的 http 客户端:
private fetch(): Observable<number> {
return this.http.get('myUrl')
.pipe(catchError((err) => of(0))),
);
}
fetchAll(): Observable<number> {
const fakeArray = [1,2];
return forkJoin(fakeArray.map(() => this.fetch()))
}
然后,组件通过 fetchAll
订阅
| async
目的是每当一个调用失败时就回退到 0。然而,这不起作用。我知道发生错误时 Angular httpclient 不会完成。有什么办法可以解决这个问题来实现我的后备吗?
要完成对
complete
甚至 error
的调用,您可以使用 finalize
RxJS 运算符。
像这样:
private fetch(): Observable<number> {
return this.http.get('myUrl')
.pipe(
catchError((err) => of(0)),
finalize(() => {
//your code logic
})
);
);
}