gpt4 book ai didi

javascript - 如何使用 promise 的 for 循环

转载 作者:行者123 更新时间:2023-11-30 08:18:32 25 4
gpt4 key购买 nike

我想用 promise 做异步 for 循环。
所以我在下面写了一段代码。

const fetchData = function (num) {
return new Promise((resolve, reject) => {
if (num === 0) {
setTimeout(() => {
resolve(num);
}, 3000);
}
if (num !== 0) {
resolve(num);
}
});
};

for (let i = 0; i < 3; i += 1) {
fetchData(i).then((i) => {
console.log(i);
});
}

我想得到结果,

0
1
2

但是,我得到了,

1
2
0

如何在 for 循环中正确使用 use promise?

非常感谢。

最佳答案

使用 async/await 使它变得简单

注意 IIFE,因为你需要一个函数 async 来使用 await

const fetchData = function(num) {
return new Promise((resolve, reject) => {
if (num === 0) {
setTimeout(() => {
resolve(num);
}, 3000);
}
if (num !== 0) {
resolve(num);
}
});
};
(async() => {
for (let i = 0; i < 3; i += 1) {
await fetchData(i).then((i) => {
console.log(i);
});
}
})();

关于javascript - 如何使用 promise 的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57702548/

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