gpt4 book ai didi

javascript - 使用 for 循环索引填充请求 Promise uri

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:05 25 4
gpt4 key购买 nike

我有一系列请求,想在 for 循环中调用。

我在端点中唯一更改的是索引参数。该索引参数应与for循环的索引相同(0-100)。

但是,promise 返回值都是来自端点之一的相同响应。 (即所有返回值都是我期望从 ${someEndPoint}?index=61 获得的值)。

someIndex = 100
var promises = [];

for (var i = 0; i < someIndex; i++){
var options = {
method: 'GET',
uri: `${someEndPoint}?index=${i}`,
json: true
}
promises.push(request(options))
}
Promise.all(promises).then(function(values){
console.log(values) // returns array of 100 of the same responses.
}).catch(e => {
console.log(e)
});

附注我正在使用一台 Node.js 服务器,它显示我的服务器已发出全部 100 次正确的 GET 调用,但 Values 对象仅多次填充了一个特定的请求响应。

[{ index: 70, data: '...' },
{ index: 70, data: '...' },
...
{ index: 70, data: '...' },
{ index: 70, data: '...'} ]

我怎样才能得到正确的答案?

最佳答案

您应该在此循环中使用异步等待。您还应该探索闭包和其他概念。

您得到相同的索引响应,因为您没有等待每个响应。

探索异步等待。

一些链接:

Using async/await with a forEach loop

https://dev.to/kayis/await-your-loops-680

https://medium.com/@antonioval/making-array-iteration-easy-when-using-async-await-6315c3225838

关于javascript - 使用 for 循环索引填充请求 Promise uri,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53221010/

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