关于js中循环遍历中顺序执行ajax的问题(vue)
js里的循环,每次都是自顾自的走,它不等ajax执行好走完到success代码,就继续循环下一条数据了,这样数据就全乱了。
后来,想到试试ajax里async这个属性,async默认是true,即为异步方式,那我改为false同步,这里主要讲解的是vue中的循环遍历中ajax执行问题。
在方法前加async,在接口名前加await,这样就不会是异步调用,这样就会执行完一次ajax后才继续执行下一次循环
remoteSelected是多选框选中的数据
async writeImage(remoteSelected){
for(var key in remoteSelected) {
await webServices.post('/writeimage/', remoteSelected[key])
.then(res => {
if (res.status == '201') {
this.items.push(res.data);
console.log(res.data);
}
}).catch(error => {
this.loading = false;
});
}
}
踩过这个坑,还有下一个坑等着你,这一路就是给自己填坑,坑填多了,也就习惯了,直到这一路平坦了,也就无怨无悔了。