为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星点点滴滴 2019-05-12 15:43:42
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]=objconsole.log('itemibj='itemObj)itemsArr.push(itemObj)})console.log('itemsArr='+itemsArr)this.items=itemsArr}await后边的post是自己用permise封装的ajax,配合async和await使用,结果先显示itemsArr=空,再显示itemibj=的每项,是什么原因造成的?
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

不要在asyncawait的时候有forEach或者其他封装的方法可以用原始的for循环或forof或者类似于这样的封装
leteach=async(arr,fn)=>{
for(vari=0;iawaitfn(arr[i],i);
}
}
asyncgetData(){
letitemsArr=[];
awaiteach([1,2,3],asyncitem=>{
vardata=awaitpost(item);
itemsArr.push(data);
});
console.log(itemsArr)
}
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 455 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信