我需要从服务工作者发送一系列PUT & POST请求。它们发送的顺序很重要。服务工作者同步或顺序提取
要求:
- 给出的请求方法,URL和JSON的身体,将请求发送
- 如果成功(
response.status < 300
):- 通行证的身体是成功的功能
- 呼叫队列中的下一个请求
- 如果失败:
- 通行证的responseText或犯错到误差函数
- 停止执行
如果我简单地通过队列迭代和呼叫fetch
对于每个请求,网络方差(经常)使请求无法到达服务器。
如何制作fetch
请求链,其中每个结果取决于前一个结果的成功?
我已经试过什么:
- XHR而不是(假设我可以使用 “异步:假”,但这不是在服务人员允许的)。
setTimeout(sendRequest, i*200)
。黑客,不可靠。Promise loops
基于这些示例ES6 Promise Patterns。这似乎是最有希望的,但这些例子是针对假设成功的简单情况。无法让它与提取一起使用。
语境:我使用的是API请求的“发件箱”,支持离线阅读,创建和更新数据。除了这个排序问题,效果很好。
注:我使用的是原生ES6承诺,而“重复”的问题是指其他库。 – AdrianoFerrari