基本知识

setTimeout(fn,t),超时调用,超过时间t,就执行fn。
setInterval(fn,t),间歇调用,调用周期t,执行fn。

二者调用后,均返回一个数值ID,此ID是计划执行代码的唯一标识符,可以通过它来取消尚未执行的调用。

clearTimeout(id)和clearInterval(id)。取消间歇调用的重要性要远远高于取消超时调用,因为在不加干涉的情况下,间歇调用将会一直执行到页面卸载。
重点

JS是一个单线程的解释器,因此一段时间内只能执行一段代码。为了要控制执行的代码,就有一个JS任务队列。这些任务会按照将它们添加到队列的顺序执行。

1、setTimeout(fn,t)中t告诉JS再过多久把当前任务添加到队列中。并不是执行的到setTimeout就添加任务。如果队列是空,那么添加的代码会立即执行;如果队列不空,那么它就要等前面的代码执行完了以后在执行。
2、setInterval(fn,t),在间歇调用时,会出现一些意外。


    let that=this;
     //处理功能状态
    that.intervalAction=  setInterval(() => {
        if ((that.configState || {}).action) {
         that.setActions();
         that.clearInterval(that.intervalAction);
         } 
      }, 300);

作者:fenerchen
链接:https://www.jianshu.com/p/fc9a08ca2c92
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

文档更新时间: 2021-09-27 09:14   作者:admin