gpt4 book ai didi

javascript - 在 JavaScript 中使 for 循环异步

转载 作者:行者123 更新时间:2023-12-04 13:10:08 24 4
gpt4 key购买 nike

我有一个由 for 循环组成的函数。循环运行一段时间,然后返回一个值。我唯一的目标是在循环完全运行后返回值。我尝试使用 PromiseAsync-Await 但它们都不适合我。

异步函数

async function getTotalQuestion(tag, question) {
var output = [];
for (let i = 0; i < question; i++) {
getOne(tag).then((data) => {
output.push(data);
})
.catch((err) => {
console.log(err);

})
}
return output;
}

调用异步函数

getTotalQuestion('eco', 9).then((data) => {
question = data; //here data is coming as undefined
})
.catch((err) => {
console.log(err)
})

最佳答案

上面代码中的问题在于它没有等待getOnedata 压入output 数组。为了获得正确的输出,您必须在for 循环中等待getOne 的结果。

async function getTotalQuestion(tag, question) {
var output = [];
for (let i = 0; i < question; i++) {
try {
var data = await getOne(tag);
output.push(data);
} catch (err) {
console.log(err);
}
}
return output;
}

关于javascript - 在 JavaScript 中使 for 循环异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66300037/

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