gpt4 book ai didi

javascript - 是否保证 for...of 循环内的异步调用将按顺序返回?

转载 作者:行者123 更新时间:2023-11-28 14:24:18 27 4
gpt4 key购买 nike

目前,我有一段代码必须循环遍历数组并为每次交互发出 API 请求。

看起来像这样

let arrayOfIds = [1, 2, 3, 5, 8, 13, 21];
let order = []
let count = 0;

for (let id of arrayOfIds) {
asyncAPICall(id)
.then((result) => {
order.push(count++);
});
}

问题是是否保证将count++插入order数组始终将是[0 , 1, 2, 3, 4, 5, 6](按正确的升序排列)?

我测试过几次,确实如此,但我没有足够的信心在生产中使用它。

我也搜索过,但我发现大部分都是其他语言的,并且没有直接回答我的问题。

谢谢!

<小时/>

额外问题:

我应该怎样做才能确保它正常?

最佳答案

保证您的请求将按照某种严格的顺序得到解决。

您的代码之所以有效,是因为您正在增加 count当您的请求得到解决时变量。因此,在您的情况下,解决哪个请求并不重要 - 结果将是相同的 (count++)。

而不是 order.push(count++);尝试console.log(result) .

关于javascript - 是否保证 for...of 循环内的异步调用将按顺序返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54124449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com