在网上看 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 都是同样结果,应该不是解析器问题/p>
const func = p => p [1, 2, 3].forEach((num) => { console.log(`forEach:${num}`) }) console.log('Done')
最近看到不少 js 不写分号的例子,原本也想转成不写分号省得多按一下键盘,看来暂时还是继续写分号稳妥一点
