在vue项目里面,需要循环发送ajax请求,
出现的问题就是循环结束,第一次服务器可能还没返回,
比如,你做批量删除,你本来的业务代码是
先遍历循环删除记录,在tolist(),加载数据,
这时你可能发现,你本来想删除5条记录,而页面显示只删除了3条
这是因为,axios是异步请求,并不会等你删除完以后才会调tolist
这个时候,我们就可以用Promise.all,相当于前面请求都做完之后
调用,具体代码如下
deleteBusStops(){ let requestList = []; if(this.multipleSelection){ this.multipleSelection.forEach(selectedItem => { // 删除请求 requestList.push(this.deleteBusStop(selectedItem.id)) }) } //同步请求 Promise.all(requestList) .then((responseList)=>{ this.getList(); }) },