繁体   English   中英

如何按顺序从数组发送 API 请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM