setTimeout 和 setInterval

setTimeout 和 setInterval 他们都可以接受两个参数,第⼀个参数是⼀个回调函数,第⼆个参数是等待

执⾏的时间。在等待时间结束之后,就会将回调函数放到 event loop 中进⾏执⾏。他们都返回⼀个

id,传⼊ clearTimeout 和 clearInterval 能够清除这次的定时操作。

重点:如果此时队列中没有内容,则会⽴即执⾏此回调函数,如果此时队列中有内容的话,则会等待内

容执⾏完成之后再执⾏此函数。(所以即使等待时间结束,也不是⽴刻执⾏这个回调函数的!)

对于 setInterval,仅当没有该定时器的任何其他代码实例时,才将定时器代码添加到队列中,所

以就会造成某个瞬间有次回调函数没有加进事件队列中去,造成丢帧。

使⽤ setTimeout 模拟之后的样⼦,每次执⾏完成之后再将下次的事件推⼊事件队列中 ,不会丢帧,但是也如果规定时间队列中有内容的话,还是要等队列内容执行完了才会执行settimeout的回调函数

上一篇:setTimeout和setInterval


下一篇:【js】setInterval是个坑!chrome定时截图保存实现