美文网首页
setTimeout代替setInterval

setTimeout代替setInterval

作者: Hi小胡 | 来源:发表于2018-01-22 10:18 被阅读60次
  • setTimeout(function,time)是超时调用,即在时间大于等于time后调用function
  • setInterval(function,time)是间歇调用,每隔time调用一次function

setInterval有一个问题就是:
如果定时器的function的运行时间大于了time,导致还没有执行完成,下一个function就添加到了队列中,最后function就连续执行了多次,中间没有间隔时间。


下面使用setTimeout来代替setInterval:

setTimeout(function(){
    console.log(1);
    setTimeout(arguments.callee,500);
},500);

这样就能保证前一个定时器中的function执行完之前,不会向队列中插入新的定时器,并且在前一个定时器执行完后,能够等待的时间间隔。

相关文章

网友评论

      本文标题:setTimeout代替setInterval

      本文链接:https://www.haomeiwen.com/subject/rjxlaxtx.html