@wb_by
Учусь

Почему axios не запускает интерцепторы на response вместе c request?

Есть проблема с обновлением токена. Чтобы ее решить сделал interceptor на response. Но проблема в том, что нужен еще и другой interceptor на request. Но вместе они не работают. В чем проблема? Может как-то неправильно передаю управление? Вроде по логике должно работать, да и в доках все также. Сами хендлеры в axios.interceptors отображаются. Может кто сталкивался? При этом два response интерцептора прекрасно работают. axios@0.21.2

axios.interceptors.request.use(
  config => {
    return config
  },
  error => {
    return Promise.reject(error)
  },
)

let isTokenRefreshing = false

axios.interceptors.response.use(
  response => {
    console.log(response)
    return response
  },
  async (error: AxiosError) => {
    if (error.response?.status !== HttpStatuses.UNAUTHORIZED || isTokenRefreshing) return Promise.reject(error)
    try {
      isTokenRefreshing = true
      const result = await refreshTokenAndRetry(error)
      isTokenRefreshing = false
      return result
    } catch (e) {
      isTokenRefreshing = false
      return Promise.reject(error)
    }
  },
)

axios({ method: 'GET', url: 'https://jsonplaceholder.typicode.com/todos/1' })


UPD: При этом в код сандобксе прям такой же код работает нормально... Загадка прям
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы