今天遇到一个循环请求问题
先上代码
function(){
var num = this.eventType.length;
for (var i = 0; i < num; i++) {
arr.eventType = this.eventType[i];
console.log(arr.eventType, i, "arr");
this.getChart(arr);
this.getPie(arr);
}
}
getChart(arr) {
//接口请求
},
getPie(arr) {
//接口请求
},
问题出在eventype上,在接口请求前打印出的eventype都是不一样的,在接口里面打印,每次都是一样的,这导致每次接口的请求参数都是一样,获取的数据也是一样。
搞了半天才找到原因,修改如下
async function(){
var num = this.eventType.length;
for (var i = 0; i < num; i++) {
arr.eventType = this.eventType[i];
console.log(arr.eventType, i, "arr");
await this.getChart(arr);
await this.getPie(arr);
}
}
async getChart(arr) {
await //接口请求
},
async getPie(arr) {
await //接口请求
},
这下就🆗了。
原因在于async是同步请求,每次循环都会执行请求
如果帮助到了您,麻烦您点个赞再走,感谢😬