Есть следующая ситуация, к которой не могу найти подход:
1. Мы вызываем какой-нибудь метод (GET, POST...)
2. В interceptors проверяем токен на просрочку
3. Если токен просрочен, приостанавливаем выполнение текущего запроса
4. Получаем токен
5. Продолжаем выполнение запроса, который запомнили до этого
Возможно есть готовые шаблоны решения подобных задач?
Или какое-либо предложение? Наводка?
Любой информации буду благодарен.
export const http = axios.create();
const currentExecutingRequests = {};
http.interceptors.request.use(
(req) => {
let originalRequest = req;
if (currentExecutingRequests[req.url]) {
const source = currentExecutingRequests[req.url];
delete currentExecutingRequests[req.url];
source.cancel('Отмена запроса');
}
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
originalRequest.cancelToken = source.token;
currentExecutingRequests[req.url] = source;
return originalRequest;
},
(err) => {
return Promise.reject(err);
}
);