promise在循环中的串行并行用法
# 概况
在node中经常在循环中用到promise, 分串行和并行,那怎么样去写呢
# 实施
# 串行
const arr = [1, 2, 3, 4]
const promise1 = async (value) => {
return new Promise(resolve => {
setTimeout(() => {
resolve(value)
}, 1000)
}
cx()
# 并行
const bx = async () => {
const promiseArr = []
for(let value of arr){
promiseArr.push(promise1(value))
}
const data = await Promise.all(promiseArr)
console.log('data', data)
}
bx()
# 同时执行
const arr = [1, 2, 3, 4]
const promise1 = async (value) => {
return new Promise(resolve => {
setTimeout(() => {
resolve(value)
}, 1000)
})
}
const cx = async () => {
for(let value of arr){
const data = await promise1(value)
console.log('data', data)
}
}
const bx = async () => {
const promiseArr = []
for(let value of arr){
promiseArr.push(promise1(value))
}
const data = await Promise.all(promiseArr)
console.log('data', data)
}
cx()
bx()
/*
data 1
data [ 1, 2, 3, 4 ] 并行比串行快
data 2
data 3
data 4
*/
上次更新: 2021/12/19, 18:05:42