Angular v5.2.4,Http拦截器:错误:未捕获(在承诺中)

时间:2018-03-19 18:23:42

标签: angular

经过长时间的搜索,我不断得到相同的答案,这似乎是正确的:

  intercept(request: HttpRequest<any>, next: HttpHandler): 
  Observable<HttpEvent<any>> {
    return next.handle(request).catch(errorResponse => {
      const status = errorResponse.status;
      if (status === 401) { this.matDialog.open(UserDialogComponent); }

      return Observable.throw(status);
    });
  }

然而,这会产生以下错误:

  

错误错误:未捕获(承诺):401       在S(polyfills.8847e333380b2b4c3385.bundle.js:1)       ...

除了:

  

polyfills.8847e333380b2b4c3385.bundle.js:1 GET   http://localhost:8080/users/auth 401(未经授权)

错误。

401是故意测试我的错误处理。

这是Angular中拦截器的Http错误的预期和唯一处理,还是我能以某种方式捕获此错误?

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

对于仍然对答案感兴趣的人:

原来这是项目中其他地方没有.catch订阅的路线保护。

所以这不是正常行为,应该进一步调查。