在for循环中如果异步请求,则请求回来的数据都是最后一条,则是需要使用js的闭包知识来解决问题。话不多说直接上代码
for(let i=0; i<10; i++) {
(function () {
var str2 = rowDataList[i].poweruserunitids;
var rowData = rowDataList[i];
control.getMonthResultInfoVO(str1, str2, function(resp){
if (resp.isError()) {
if (console && console.log){
console .log("出错啦");
}
}
});
})(i);
}
要注意两点,一是闭包问题,二是使用let关键字,let是块级作用域,函数内部使用let定义后,对函数外部无影响。不然数据量多的话一直卡着