如果状态码为202,是否可以重试请求?我知道我可以使用retryWhen,但它只捕获错误。如果我能在拦截器中重试,那就太好了。
我有一个请求
return this.http.get(this.location(location), {observe: 'response'}).pipe(
res => {
return res;
}
);
拦截器
export class HttpLoadInterceptor implements HttpInterceptor {
constructor(
private loaderService: LoaderService) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).pipe(
map(event => {
this.loaderService.displayLoader(true); // show loader
return event;
}),
finalize(() => {
this.loaderService.displayLoader(false); // Hide loader
})
);
}
}
和订阅者
this._data.flComponent('API url').subscribe(orders => {
this.flComponent = orders;
});
发布于 2018-08-17 21:09:10
我解决了这个问题,但我不满意。似乎我唯一的选择是在订阅函数中。因为我使用了“观察”,所以我得到了状态等。
Angular应该做一些类似于retry()的事情,但是不管返回的是什么状态代码。
例如
retry(202, 3)
状态码为202时重试。重试3次
https://stackoverflow.com/questions/51880677
复制相似问题