Как мне перехватить AuthHttpError при выполнении запроса с AuthHttp?

У меня возникла проблема с возможностью поймать AuthHttpError который возвращается из звонков в 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);
      })
}

В этом случае, если токен истек, я хочу, чтобы консоль напечатала "handle AuthHttpError", но вместо этого она напечатает "handle other Error". Я также заметил, что в этом случае response.constructor.name будет "Ошибка" вместо "AuthHttpError".

Кто-нибудь знает, есть ли способ отловить эту ошибку?

0 ответов

Другие вопросы по тегам