我正在尝试通过重试来实现 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() 之后,这很有效,但它没有给我任何信息,例如最近错误的状态代码。
上次重试失败后如何获取最近的错误?