循环中的异步会导致返回值与预期结果不符
for(var i = 0; i <= 3; i++) {
setTimeout(function() {
console.log(i);
},i*1000);
}
js修改方法:
for(var i = 0; i <= 3; i++) {
(function(j) {
setTimeout(function() {
console.log(j);
},i*1000);
})(i);
}
ES6修改方法:
for(let i = 0; i <= 3; i++) {
setTimeout(function() {
console.log(i);
},i*1000);
}