RT,list包含100首歌曲,现在对它进行遍历,拿到每首歌曲的mid,作为getSongvkey(jsonp)参数来异步获取vkey值,再通过creatSong方法将vkey作为属性添加至歌曲上,这个vkey值需要用来获取歌曲的播放链接。现在的问题是因为数据是异步获取的,我按以下代码在forEach遍历的时候,只能拿到最后一个item的vkey,如何每遍历一个item就获取它的mid然后异步获取其vkey返回,再处理下一个item?_normalizeSongs(list){letret=[]list.forEach((item)=>{let{musicData}=itemif(musicData.songid&&musicData.songmid&&musicData.albummid){getSongvkey(musicData.songmid).then(res=>{if(res.code===ERR_OK){letvkey=res.data.items[0].vkeyret.push(creatSong(musicData,vkey))}})}}returnret}
2 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
async/await了解一下,这个写法看起来挺像同步的。遇到异步的地方会堵塞,一直到异步方法执行完成才会继续往下执行,达到类似同步执行的效果。用法很简单,百度几个例子看一下就明白了
添加回答
举报
0/150
提交
取消