用setTimeout替代setInterval

407 阅读1分钟

从真正意义上来说,setTimeout和setInterval并不是真正意义上的在指定时间上运行代码了,而是在指定时间将代码放入执行队列当中。

setTimeout:

在规定的时间内执行代码,该代码只执行一次。

setInterval:

定时将代码放入队列当中,等待执行。


在写代码的时候,我们偶尔会使用setInterval来执行一定的代码,但是,当代码阻塞时,setInterval也会定时将代码放入执行队列当中,如此下来。会严重造成代码的阻塞等问题。

而使用递归执行setTimeOut时,则可以完全避免此类情况,当代码阻塞时,将不会执行接下来的代码,能够很好的避免此类情况。

代码如下: