Ребят, подскажите, пожалуйста, как в интерцепторе аксиоса правильно сохранить пришедший запрос, чтобы отравить его позже ?
Реализую механизм обновления рефреш-токена и необходимо все запросы, которые сервис генерирует, пока рефреш-токен обновляется, собирать в массив, пока запрос на рефреш-токен не будет полностью обработан. Далее предполагаю, когда рефреш токен будет полностью обработан, новый токен поставлен, отправлять все собранные запросы из массива.
В данный момент делаю вот так. Однако, как я предполагаю, из-за 'return refreshTrack.push(response)'. аксиос предполагает, что вернули из интерцептора не запрос, а нечто другое, и поэтому сразу фейлит этот запрос (он попадает в interceptors.response без тела ответа).
Axios.interceptors.request.use(
(response) => {
if (isRefreshUpdating && response.url !== 'refresh-token') {
return refreshTrack.push(response);
}
return response;
}, (err) => err);
*isRefreshUpdating булевая переменная, которая замыкается, когда начинается процесс обновления токена.