1

我遇到了一个问题,无法捕获AuthHttpError从对 in 的调用返回AuthHttp的内容angular2-jwt

每当AuthHttp检测到令牌过期时,它会抛出AuthHttpError而不向后端发送请求。我想捕捉这个错误,以便我可以注销用户。但是,我似乎无法在Observable.catch().

假设我有这样的代码:

doRequest(url: string, params: string, jsonOptions: string) {
  return this.http.post(url, params, jsonOptions)
      .catch(response => {
          if (response instanceof Response) {
              console.info('handle server errors');
          } else if (response instanceof AuthHttpError) {
              console.info('handle AuthHttpError');
          } else {
             console.info('handle other Error')
          }
          return Observable.throw(response);
      })
}

在这种情况下,如果令牌已过期,我希望控制台打印“处理 AuthHttpError”,但它会打印“处理其他错误”。我还注意到,在这种情况下,response.constructor.name将是“Error”而不是“AuthHttpError”。

有谁知道是否有办法捕捉这个错误?

4

0 回答 0