核心提示:关于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


