现在有这样一个需求 比如我有一个数组: arr=[ { id:'84001', name:'认真的雪' },{ id:'84002', name:'黄河大道东' },{ id:'84003', name:'体面' },{ id:'84004', name:'断了的弦' }, ]我要通过数组中的id调用API获取到所有音乐的url,如果通过遍历数组调用ajax取到音乐的Url?var urlList=[]arr.forEach((item)=>{ $.ajax({ url:'api/v1/getMusicById?id='+item.id, type:'get', success:(res)=>{ urlList.push(res.url) } })})console.log(urlList)我起初的想法是这样的 但是这样做肯定有问题 ajax请求是异步的我想要在遍历完成后 ajax请求也全部完成 然后可以获得一个url列表请问大家 该怎么实现?
7 回答
慕慕森
TA贡献1856条经验 获得超17个赞
建议改成post请求
请求参数中将所有的id组成一个数组,后端统一返回所有的url
var urlList=[]
var idList = [1,2,3,4,5]
$.ajax({
url:'api/v1/getMusicByIds,
type:'post',
data:idList,
success:(res)=>{
urlList = [...res.url]
}
})
婷婷同学_
TA贡献1844条经验 获得超8个赞
我觉得是你的需求有问题吧
一般需要音乐的url就是在播放的时候需要,而每次都只会同时播放一首歌,那你可以播放的时候执行一次ajax请求去通过id获取url啊
噜噜哒
TA贡献1784条经验 获得超7个赞
添加回答
举报
0/150
提交
取消