首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular 6重试http

Angular 6重试http
EN

Stack Overflow用户
提问于 2018-08-16 23:33:04
回答 1查看 382关注 0票数 2

如果状态码为202,是否可以重试请求?我知道我可以使用retryWhen,但它只捕获错误。如果我能在拦截器中重试,那就太好了。

我有一个请求

代码语言:javascript
运行
复制
return this.http.get(this.location(location), {observe: 'response'}).pipe(
      res => {
        return res;
      }
    );

拦截器

代码语言:javascript
运行
复制
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
      })
    );
  }
}

和订阅者

代码语言:javascript
运行
复制
this._data.flComponent('API url').subscribe(orders => {
  this.flComponent = orders;
});
EN

回答 1

Stack Overflow用户

发布于 2018-08-17 21:09:10

我解决了这个问题,但我不满意。似乎我唯一的选择是在订阅函数中。因为我使用了“观察”,所以我得到了状态等。

Angular应该做一些类似于retry()的事情,但是不管返回的是什么状态代码。

例如

代码语言:javascript
运行
复制
retry(202, 3)

状态码为202时重试。重试3次

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51880677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档