запретить axios отправлять запрос на токен обновления, когда он уже был запрошен

#reactjs #axios

Вопрос:

У меня есть перехватчик axios, который отправляет запрос на обновление маркера доступа, когда исходный запрос получает ошибку 401, но проблема в том, что, хотя он запросил маркер обновления, когда отправляется другой запрос и получает 401, он снова отправляет запрос на маркер обновления!. Он продолжает отправлять запросы на обновление маркера доступа, когда уже ожидает запрос на обновление маркера. Как я могу это предотвратить?

 const createResponseInterceptor = () =gt; { const interceptor = axiosClient.interceptors.response.use(  (response) =gt; {  return response;  },  (error: AxiosError) =gt; {  const originalRequest = error.config;  if (error.response amp;amp; error.response.status !== 401) {  return Promise.reject(error);  }   axiosClient.interceptors.response.eject(interceptor);   console.info('token expired', error.response?.config);   return axiosClient  .patch('/auth', {  refreshToken: localStorage.getItem('refresh_token'),  })  .then((res) =gt; {  if (res.status === 200) {  localStorage.setItem(  'access_token',  res.data.accessToken  );   axiosClient.defaults.headers['Authorization'] =  res.data.accessToken;  originalRequest.headers['Authorization'] =  res.data.accessToken;   return axiosClient(originalRequest);  }  })  .catch((err) =gt; {  if (err.response amp;amp; err.response.status === 401) {  localStorage.removeItem('access_token');  localStorage.removeItem('refresh_token');   window.location.href = '/login';   return Promise.reject(err);  } else {  console.info('error failed');  axiosClient.interceptors.response.eject(interceptor);   return Promise.reject(err);  }  })  .finally(createResponseInterceptor);  } );  

};

Это мой код перехватчика, он работает просто отлично, но у меня есть только одна проблема.