问题描述es6中一个function内的循环,循环里有异步,怎么让最终的结果被return,在循环外return不是想要的结果问题出现的环境背景及自己尝试过哪些方法用vue2开发的web项目,Promise和async/await都有个问题就是循环内得到的是promise对象,无法在循环外return想要的结果相关代码//请把代码文本粘贴到下方(请勿用图片代替代码)async_normalizeSongs(list){if(!list){return}letrest=[]letindex=1console.log(list)for(leti=0;i{console.log(res)/*rest=rest.concat(res)this.result=rest*/rest=rest.concat(this._normalizeSongs(data.song.list))})}console.log(rest)returnrest}你期待的结果是什么?实际看到的错误信息又是什么?_genResult这个函数里promise里的res怎么return出这个函数,路过的道友们给看看,万分感谢
2 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
Promise.all()了解一下。constresults=Promise.all(list.map(item=>getSongVkey(item.songmid)))//results是一个数组注:你的getSongVkey方法应该返回的是一个Promise对象.参考如下:MDNletp1=newPromise((resolve,reject)=>{resolve('成功了')})letp2=newPromise((resolve,reject)=>{resolve('success')})Promise.all([p1,p2]).then(results=>{console.log(results)}).catch(error=>{console.log(error)})
添加回答
举报
0/150
提交
取消