簡體   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