在网上看 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 不写分号的例子,原本也想转成不写分号省得多按一下键盘,看来暂时还是继续写分号稳妥一点
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.