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);
       }
}

 

posted @ 2014-10-11 03:08  alxe_yu  阅读(215)  评论(0)    收藏  举报