async/await - 8.在for迴圈中正確的使用await
阿新 • • 發佈:2018-12-14
async/await - 8.在for迴圈中正確的使用await
const fetch = require('node-fetch') const bluebird = require('bluebird') async function getZhihuColumn(id) { await bluebird.delay(1000) const url = `https://zhuanlan.zhihu.com/api/columns/${id}` const response = await fetch(url) return await response.json() }
迴圈中的序列
const showColumnInfo = async() => { console.time('showColumnInfo') const names = ['qianduanzhidian', 'FrontendMagazine'] for (const name of names) { const column = await getZhihuColumn(name) console.log(`name:${column.name}`) console.log(`description:${column.description}`) } console.timeEnd('showColumnInfo') // 4757.181ms } showColumnInfo()
迴圈中的並行
const showColumnInfo = async() => { console.time('showColumnInfo') const names = ['qianduanzhidian', 'FrontendMagazine'] const promises = names.map(x => getZhihuColumn(x)) for (const promise of promises) { const column = await promise console.log(`name:${column.name}`) console.log(`description:${column.description}`) } console.timeEnd('showColumnInfo') // 2615.484ms } showColumnInfo()