async function process(array) {
for (let i of array) {
await doSomething(i);
}
}
這段代碼不會正常運行,下面這段同樣不會運行:
async function process(array) {
array.forEach(async i => {
await doSomething(i);
});
}
這段代碼中,循環本身依舊保持同步,並在在內部異步函數之前全部調用完成。(這也是問題所在)
async function process(array) {
for await (let i of array) {
doSomething(i);
}
}
除此之外還有一種藉助Promise.all實現的在數組的map方法中請求異步函數
let result=await Promise.all(dataComments.map(async (ele)=>{
return (async ()=>{
let resData= await articleApi.getOneArticle(ele.article_id);
let titleData=resData.data;
ele.title=titleData.title
console.log("111")
return ele;
})()
}))