修复在 for loop(forEach of array) js 中实现 async/await 的错误
fixing error in implementing async/await in for loop(forEach of array) js
而运行这段代码我得到
的输出
1
3
2
我的预期输出是
1
2
3
const test = [1, 2, 3]
test.forEach(async (i) => {
if (i === 2) {
await new Promise(resolve => setTimeout(resolve, 3000));
}
console.log(i);
})
如果我 === 2,如何让打印语句等待 3 秒
如果你也能解释一下:)
不能使用.forEach
顺序执行,因为返回给forEach
函数的Promise被忽略了。你必须使用 for...of
循环。
这是一个例子:
const test = [1, 2, 3];
(async function () {
for (let i of test) {
if (i === 2) {
await new Promise(resolve => setTimeout(resolve, 3000));
}
console.log(i)
}
}());
而运行这段代码我得到
的输出1
3
2
我的预期输出是
1
2
3
const test = [1, 2, 3]
test.forEach(async (i) => {
if (i === 2) {
await new Promise(resolve => setTimeout(resolve, 3000));
}
console.log(i);
})
如果我 === 2,如何让打印语句等待 3 秒 如果你也能解释一下:)
不能使用.forEach
顺序执行,因为返回给forEach
函数的Promise被忽略了。你必须使用 for...of
循环。
这是一个例子:
const test = [1, 2, 3];
(async function () {
for (let i of test) {
if (i === 2) {
await new Promise(resolve => setTimeout(resolve, 3000));
}
console.log(i)
}
}());