How to use setTimeout in for loop
目的: 希望在for循环中执行setTimeout
1. 有问题的code:
function myFunction()
{
for(var i=0;i<3;i++){
console.log(i);
setTimeout(function(){console.log(i)},i*1000);
}
}
这个结果是会打印三次 3, 而不是 0, 1, 2
2. 工作的code:
function myFunction()
{
for(var i=0;i<3;i++){
console.log(i);
action(i);
}
}
function action(number)
{
setTimeout(function(){console.log(number)},number*1000);
}
这个会实现间隔一秒打印 0,1,2
3. 或者可以:
function myFunction()
{
function action(number)
{
setTimeout(function(){console.log(number)},number*1000);
}
for(var i=0;i<3;i++){
//console.log(i);
action(i);
}
}