setTimeout和setInterval都是不能保证时间精度的,他们的第二个参数(延时)只能保证何时把代码添加到浏览器的任务队列中,不能保证添加到队列就会立即执行。
如果队列前面还有其他任务,那么就要等这些任务执行完再执行。
简单来说,这两个方法的第二个参数(延时)并不是说何时这些代码会执行,而只是说何时把回调加入到任务队列。如果添加到队列后,主线程被其他任务占用,那么回调不会马上执行。
本文解析了setTimeout和setInterval这两个JavaScript定时器的工作原理。它们并不能确保代码执行的时间精度,而是将回调函数放入任务队列中等待执行。文章强调了实际执行时间取决于主线程上是否有其他任务正在运行。
setTimeout和setInterval都是不能保证时间精度的,他们的第二个参数(延时)只能保证何时把代码添加到浏览器的任务队列中,不能保证添加到队列就会立即执行。
如果队列前面还有其他任务,那么就要等这些任务执行完再执行。
简单来说,这两个方法的第二个参数(延时)并不是说何时这些代码会执行,而只是说何时把回调加入到任务队列。如果添加到队列后,主线程被其他任务占用,那么回调不会马上执行。
2955
623
538

被折叠的 条评论
为什么被折叠?