asyncawit 配合permise实现异步出了问题?

methods:{
getData(){
if(!this.token){
console.log('tokenisnull')
return
}
lettokenBody={
"Content-Type":"application/json",
}
letitemsArr=[]
this.bymbolArr.forEach(asyncitem=>{
console.log(item)
lettokenBody={
'Content-Type':'application/json',
}
letdata=awaitpost(Config.getSharesUrl,tokenBody);
if(data.RetrieveItem_Response_3){
letdataArr=data.RetrieveItem_Response_3.ItemResponse[0].Item[0].Fields.Field;
if(dataArr.length>0){
varobj={}
letarr=dataArr.forEach(item=>{
if(item.Double){
obj[item.Name]=item.Double
}
})
}
}
letitemObj={}
itemObj[item]=obj
console.log('itemibj='itemObj)
itemsArr.push(itemObj)
})
console.log('itemsArr='+itemsArr)
this.items=itemsArr
}
await后边的post是自己用permise封装的ajax,配合async和await使用,结果先显示itemsArr=空,再显示itemibj=的每项,是什么原因造成的?
繁星点点滴滴
浏览 456回答 2
2回答

隔江千里

不要在asyncawait的时候有forEach或者其他封装的方法可以用原始的for循环或forof或者类似于这样的封装leteach=async(arr,fn)=>{for(vari=0;i{vardata=awaitpost(item);itemsArr.push(data);});console.log(itemsArr)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript