有这么两个函数
var a = function () {
return new Promise((resolve, reject)=>{
setTimeout(()=>{
resolve('a')
}, 3000)
})
}
var b = function () {
return new Promise((resolve, reject)=>{
setTimeout(()=>{
resolve('b')
}, 2000)
})
}
如果这样执行
;(async()=>{
console.time('test')
var aa = await a()
var bb = await b()
console.log(`$(aa)-${bb}`)
console.timeEnd('test')
})()
结果是
$(aa)-b
test: 5010.7548828125ms // 串行
但是如果这样执行
;(async()=>{
console.time('test')
var promiseA = a()
var promiseB = b()
var aa = await promiseA
var bb = await promiseB
console.log(`$(aa)-${bb}`)
console.timeEnd('test')
})()
结果则是
$(aa)-b
test: 3001.277099609375ms // 并行
这是为什么呢??
杨魅力
撒科打诨
相关分类