nodejs 中同步异步多种写法

简介

nodejs 的同步异步写起来真爽,特别是结合 typescript,简直上天!感觉可以取代 go 的异步呢,哈哈。

同步循环

传统 for 循环:

1
2
3
4
for (let i = 0; i < array.length; i++) {
const item = array[i]
// do something
}

进阶 forEach:

1
2
3
array.forEach(item => {
//do something
})

异步循环

全部异步,不关心结果

1
2
3
4
5
6
async function doArray(array) {
array.forEach(async(item) => {
await doItem(item)
})
console.log('loop done! But each item is sitll doing')
}

依次同步

1
2
3
4
5
6
async function doArray(array) {
for (const item of array) {
await doItem(item)
}
console.log('every item done!')
}

异步执行,同步等结果

1
2
3
4
5
async function doArray(array) {
const promises = array.map(item => doItem(item))
await Promise.all(promises)
console.log('every item done!')
}

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器