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;
})()
}))