修复在 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)
    }
}());