Мне нужно послать серию PUT & POST-запросов от Service Worker. Порядок, в котором они отправлены, имеет значение.Синхронная или последовательная выборка в обслуживающем работнике
Требования:
- Данный метод запроса, URL и JSON тело, отправить запрос
- Если это удастся (
response.status < 300
):- Pass тела к функции успеха
- Вызвать следующий запрос в очереди
- Если это не удается:
- Pass responseText или заблуждаться ошибки функции исполнения
- Stop
Если я просто перебирать очереди и вызвать fetch
для каждого запроса, сеть дисперсия может (часто делает) вызывает запросы чтобы выйти на сервер не по порядку.
Как создать цепочку из fetch
запросов, где каждый результат зависит от успеха предыдущего?
Что я пробовал:
- XHR вместо (предполагая, что я мог бы использовать "асинхронной ложь", но это не допускается в службе работника).
setTimeout(sendRequest, i*200)
. Взлом, не надежный.Promise loops
Основано на данных примерах ES6 Promise Patterns. Это казалось наиболее перспективным, но примеры для простого случая, когда предполагается успех. Не удается заставить его работать с извлечением.
Контекст: Я использую «Исходящие» запросов API для поддержки чтения в автономном режиме, создание и обновление данных. Хорошо работает, за исключением этой проблемы с заказом.
Примечания: Я использую родные Обещания ES6, в то время как «дублировать» вопрос относится к другим библиотекам. – AdrianoFerrari