setTimeout 和 setInterval 他们都可以接受两个参数,第?个参数是?个回调函数,第?个参数是等待
执?的时间。在等待时间结束之后,就会将回调函数放到 event loop 中进?执?。他们都返回?个
id,传? clearTimeout 和 clearInterval 能够清除这次的定时操作。
重点:如果此时队列中没有内容,则会?即执?此回调函数,如果此时队列中有内容的话,则会等待内
容执?完成之后再执?此函数。(所以即使等待时间结束,也不是?刻执?这个回调函数的!)
对于 setInterval,仅当没有该定时器的任何其他代码实例时,才将定时器代码添加到队列中,所
以就会造成某个瞬间有次回调函数没有加进事件队列中去,造成丢帧。
使? setTimeout 模拟之后的样?,每次执?完成之后再将下次的事件推?事件队列中 ,不会丢帧,但是也如果规定时间队列中有内容的话,还是要等队列内容执行完了才会执行settimeout的回调函数
原文:https://www.cnblogs.com/chengxian-wang/p/14655131.html