function fetchName (err) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('lujs')
}, 3000)
})
}
function fetchAvatar (err) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('https://www.baidu.com')
}, 4000)
})
}
async function fetchUser () {
const name = await fetchName()
const avatar = await fetchAvatar()
return {
name,
avatar
}
}
async function fetchUserParallel () {
const namePromise = fetchName()
const avatarPromise = fetchAvatar()
return {
name: await namePromise,
avatar: await avatarPromise
}
}
(async function () {
// 请求一个接着一个执行
console.time('should be 7s ')
const user = await fetchUser()
console.log(user)
console.timeEnd('should be 7s ')
// 两个请求并发
console.time('should be 4s ')
const user2 = await fetchUserParallel()
console.log(user2)
console.timeEnd('should be 4s ')
})()
async/await 写并行请求
最新推荐文章于 2021-07-27 13:41:27 发布