在网上看 forEach 异步按顺序执行的问题,发现有一个例子直接没有输出,不按顺序执行应该也有输出才对
const waitFor = (ms) => new Promise(r => setTimeout(r, ms))
[1, 2, 3].forEach(async (num) => {
await waitFor(50)
console.log(num)
})
console.log('Done')
开始以为是 async/await 导致的问题,调试、精简一番,发现原来 forEach 语句和上面返回语句拼到一起解析了,Firefox、Chrome 都是同样结果,应该不是解析器问题
const func = p => p
[1, 2, 3].forEach((num) => {
console.log(`forEach:${num}`)
})
console.log('Done')
最近看到不少 js 不写分号的例子,原本也想转成不写分号省得多按一下键盘,看来暂时还是继续写分号稳妥一点