核心提示:关于For循环中进行异步操作索引不正确的解决方案function test() {for (var i = 0; i5; ++i) {setTimeout(function() {console.lo...
关于For循环中进行异步操作索引不正确的解决方案
function test() { for (var i = 0; i < 5; ++i) { setTimeout(function() { console.log("index is :", i); }, 1000); } } test();
output 问题输出
index is : 5 index is : 5 index is : 5 index is : 5 index is : 5
solution 使用自执行函数
function test() { for (var i = 0; i < 5; ++i) { (function(i){ setTimeout(function() { console.log("index is :", i); }, 1000) })(i); } } test();
output 正确输出
index is : 0 index is : 1 index is : 2 index is : 3 index is : 4