自学内容网 自学内容网

for循环中批量调用接口,等接口全部执行完成后处理——js基础积累

最近在写后台管理系统的时候,遇到一个需求,就是要for循环遍历,然后每一项都要进行接口的调用,然后接口全部执行完成后再进行其他的操作。

下面有两种方式来处理:

1.可以通过Promise.all的方式来处理——接口异步同时进行

let tableData = [];
let proArr = [];
this.arr.forEach(item=>{
proArr.push(接口(入参).then(res=>{tableData = tableData.concat(res.data.items)}))
})
Promise.all(proArr).then(()=>{此时tableData的数据就是最终的了})

2.可以通过for循环+async+await的形式来处理——接口同步进行,一个执行完了再执行下一个,这个对后端接口而言更友好

async getDataList(){
for(let item of this.arr){
await 接口(入参).then(res=>{tableData = tableData.concat(res.data.items)}
}
此时tableData的数据就是最终的了
}

注意:不能使用forEach,只能用for循环,或者map等
在这里插入图片描述


原文地址:https://blog.csdn.net/yehaocheng520/article/details/143790739

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!