на бэкенд. Бывает, несколько штук сразу. Один из них может вернуть 401. Как бы так отменить все оставшиеся запросы, сохранить их, и после повторной авторизации вновь отправить? Пока мыслю в сторону дополнительного слоя перед аксиосом, который будет собирать весь пул запросов и отслеживать ответы. В случае 401, авторизация и заново отправка всего пула. Сложность в том, что запросы могут лететь из разных мест и объединять их проблематично.
Оставшиеся не знаю как, но можно пропустить все через промис олл. Если хоть в одном ошибка, вернёт ошибку. Потом заново можно запрос отправить. Покопай промисы, может найдешь чего более подходящего
с промисами понятно и так. думаю, как бы это все хранить и где)
У меня была похожая, но без запоминания. Нужно было отправлять пачку запросов на изменение данных. Если ошибка хоть в одном, то прошедшие изменять и выдавать ошибку пользователю. Прошедшие скидывал в массив и возвращал
А ответы успешные адресатам как доставлялись? Типа разные сервисы/экшены кидают разные запросы, друг о друге ничего не знают.
var arrayAllPromises = function arrayAllPromises(arr) { var result = []; for (var i = 0; i < arr.length; i++) { result.push(request(arr[i])); } return result; }; Promise.all(arrayAllPromises(params.bodyArray)) .then(function(data) { return params.successFn ? params.successFn(data) : true; }) .catch(function(err) { ViolationWarnings.showFor(null, { message: err ? err.non_field_errors || err.detail : 'Произошла неизвестная ошибка' }); if (params.errorFn) { params.errorFn(err); } throw err; })
тоже колбэке думаю.
axios.interceptors не оно?
Есть для реакт-редакс стека такая библоитека redux-offline, поищите что-то похожее или напишите свою очередь простою (first-in\first-out)
это достаточно сложный флоу. насколько он необходим? я на практике не встречал такой реализации
Рядом, но не совсем) они каждый запрос в отдельности разбирают, и друг о друге ничего не знают
Да в целом вроде концептуально придумал решение, буду пробовать
Вообще странно, ибо кейс кажется вполне типовым
да, redux-ofline он это и делает примерно.
не уверен на счет типового кейса. токен зарефрешить если протух -это типовой кейс.
Время, которое пройдет между 401 и потом успешной авторизацией, может быть большим, и все эти отложенные запросы могут устареть. и их выполнение приведет к ненужному эффекту.
Обсуждают сегодня