【发布时间】:2018-02-27 16:20:41
【问题描述】:
我正在尝试通过重试来实现 Angular5 http.get。我写了
http.get<any>('/api/study').retryWhen(
(errors: Observable<any>):Observable<any> => {
return errors.flatMap((error: any) => {
if (error.status == 500) {
return Observable.of(error.status).delay(1000);
}
return Observable.throw(error);
}).take(5);
});
如果收到错误 500,它将继续重试最多 5 次。但是,如果它连续 5 次失败,则它返回成功(数据为空)。我不想要那个。相反,我希望它抛出最后一个错误。
我尝试将.concat(Observable.throw({})) 放在 take() 之后,这很有效,但它没有提供任何信息,例如最近错误的状态代码。
上次重试失败后如何获取最近的错误?
【问题讨论】:
标签: angular reactjs rxjs retrywhen