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

es6中一个function内的循环,循环里有异步,怎么让最终的结果被return

es6中一个function内的循环,循环里有异步,怎么让最终的结果被return

慕村9548890 2019-05-11 16:03:19
问题描述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对象.参考如下:
MDN
letp1=newPromise((resolve,reject)=>{
resolve('成功了')
})
letp2=newPromise((resolve,reject)=>{
resolve('success')
})
Promise.all([p1,p2]).then(results=>{
console.log(results)
}).catch(error=>{
console.log(error)
})
                            
查看完整回答
反对 回复 2019-05-11
  • 2 回答
  • 0 关注
  • 1344 浏览
慕课专栏
更多

添加回答

举报

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