![](/img/trans.png)
[英]How to send Javascript/jQuery AJAX POST requests sequentially, looping over an array of request data, using Promises?
[英]How to send API requests from an array sequentially
情况:我有一个 API,它通过 Lambda 连接到 DynamoDB 数据库。 每个请求都会对数据库中的几条记录进行更改。 因此,在将下一个请求发送到 API 之前,需要完全完成每个请求。 否则我会在数据库中得到不一致的数据。
我需要帮助的地方:鉴于我在数据库中有要请求的元素数组...
const requestArray = [123, 456, 567]
...并且我的代码与 API 后置方法 promise 的等待一起工作...
async function databaseRequestExample (requestArray[x]){
const result = await postAPIFunction(requestArray[x])
}
...我想知道如何处理数组一个又一个请求。 所以通过array.map并发调用不是一个选项。
谢谢
一种选择是将所有传入请求按顺序保存到 FIFO SQS 队列中。 Then, you can let the lambda function pull from the queue one request at a time, and set the reserved concurrency of the lambda function to 1. This will ensure that at any given time there is at most one lambda function is querying/making changes到 DynamoDB,它正在按顺序处理。
您可以使用async
库的async.eachSeries function。
基本上它会为你运行foreach
循环,但它是串行运行的。 因此,您可以一个接一个地触发您的请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.