还有既然 setTimeout()可以替代setInterval(),而且更符合我们的要求,为什么还需要使用setInterval()?
在setTimeout中的业务会被阻塞到空闲时执行,而setInterval不会受其他业务的阻塞。
setInterval
和setTimeout
解决的问题和使用的场景有点区别 前者用于间隔后执行,后者为延时执行。
setTimeout(fn,500),
表示在500ms之后执行fn,但是只执行一次
。
setInterval(fn,500)
则表示的是,每隔500ms执行一次
,这里需要注意,不管在500ms
时间内fn
有没有运行完。500ms
之后都将会再次执行fn