js的for循环中异步请求

在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定义后,对函数外部无影响。不然数据量多的话一直卡着

猜你喜欢

转载自blog.csdn.net/TetaiSon/article/details/82148504