Interceptor Observable没有运行

时间:2018-03-07 06:00:11

标签: angular

我完全失去了为什么我的拦截器返回一个observable没有执行,然后最后,发出下一个处理程序可观察。

我显然缺少一个基本方面,所以调试正在成为重新阅读教程的一个案例,所以任何帮助都将受到赞赏,以帮助这个过程。

以下是代码:

constructor(private tokenAuthService: TokenAuthService) { }
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    console.log(`Auth INterceptor`);
    return this.tokenAuthService.token
      .map(token => {
        console.log(`Setting token ${token}`);
        return req.clone({ 'headers': req.headers.set('authorization', `Bearer ${token}`) });
      })
      .concatMap(request => {
        console.log(`Returning Request`);
        return next.handle(request);
      })
      .catch((err: Error, observable) => {
        if (err instanceof HttpErrorResponse && err.status === 401) {
          return Observable.concat(this.tokenAuthService.refreshToken, observable);
        }
        console.log(`Auth Interceptor Error: ${err.message}`);
        throw err;
      });
  }
}

1 个答案:

答案 0 :(得分:0)

通过正确注册拦截器执行的代码。