async/await - 5.正确处理多个await操作
const fetch = require('node-fetch')
const sleep = (timeout = 2000) => new Promise(resolve => {
setTimeout(resolve, timeout)
})
async function getZhihuColumn(id) {
await sleep(2000)
const url = `https:`
const response = await fetch(url)
return await response.json()
}
1. 两个请求串行处理多个await操作,先调用异步操作,再处理异步结果
const showColumnInfo = async (id) => {
console.time('showColumnInfo')
const qianduanzhidian = await getZhihuColumn('qianduanzhidian')
const FrontendMagazine = await getZhihuColumn('FrontendMagazine')
console.log(`name:${qianduanzhidian.name}`)
console.log(`description:${qianduanzhidian.description}`)
console.log(`name:${FrontendMagazine.name}`)
console.log(`description:${FrontendMagazine.description}`)
console.timeEnd('showColumnInfo') // 4349.122ms
}
showColumnInfo()
2.两个请求为并行
const showColumnInfo = async (id) => {
console.time('showColumnInfo')
const qianduanzhidianPromise = getZhihuColumn('qianduanzhidian')
const FrontendMagazinePromise = getZhihuColumn('FrontendMagazine')
const qianduanzhidian = await qianduanzhidianPromise
const FrontendMagazine = await FrontendMagazinePromise
console.log(`name:${qianduanzhidian.name}`)
console.log(`description:${qianduanzhidian.description}`)
console.log(`name:${FrontendMagazine.name}`)
console.log(`description:${FrontendMagazine.description}`)
console.timeEnd('showColumnInfo') // 2526.615ms
}
showColumnInfo()