Как справиться с повторной попыткой нескольких асинхронных API при предоставлении статуса 401? - PullRequest
0 голосов
/ 07 июня 2019

На моей странице я звоню в общей сложности 4 APIS, которые являются независимыми. поэтому в случае истечения срока действия токена я даю 401 статус для повторной попытки.

Я использую запрос API AXIOS. поэтому в моем коде перехватчика я обрабатываю ошибку. в случае с 401 я вызываю функцию для получения нового accessToken, устанавливаю его в заголовке и вызываю API.

if (error.status===401) {
 return getToken().then(response => { //getToken is a function to get new accessToken
   // update the error config with new token
  error.config.__isRetryRequest = true;
  error.config.headers.token= localStorage.getItem("accessToken");
  // retrying the api after new token
  return client(error.config);
});

с помощью этого кода он вызывает функцию getToken каждый раз, когда происходит 401, но, скажем, у меня есть 4 apis на моей одной странице, тогда я хочу вызвать getToken только один раз, получить новый токен и обновить все 4 api и повторить все 4.

...