【发布时间】:2020-01-20 11:49:01
【问题描述】:
我正在使用 rxjs 6.5 和 angular。基本上,我想在我的服务中有一个方法:
- 如果 api 响应,则返回第一个 api 调用的状态
- 如果第一次调用失败,则返回第二次(不同的)api 调用的状态
- 如果第二次调用失败,则返回一个虚拟值
这是我目前所拥有的。我想我需要使用flatMap/mergeMap,但我不知道如何使用。
service.ts
public getStatus()
{
return this.http.get('http://api.com/status1')
.pipe(
catchError(() => {
//makes 2nd api call here
return this.http.get('http://api.com/status2')
.pipe(catchError(() =>
{
//both calls failed
return of({
data: 'blah',
success: false
});
}))
}));
}
component.ts
this.service.getStatus().subscribe(status=>this.status = status);
有人可以帮忙吗?
【问题讨论】: