我读过这篇文章: http://ejohn.org/blog/how-javascript-timers-work/ 我知道如果页面太忙,setInterval可能会丢弃一些回调执行。
我也没有看到它如何适用于setTimeout,因此可以安全地假设setTimeout将始终执行(可能有些延迟),或者是因为忙碌过程而导致setTimeout被丢弃的情况?
答案 0 :(得分:3)
是。传递给setTimeout
的函数将在某个时刻执行。虽然它的时间安排得不到保证。
答案 1 :(得分:1)
是的 - 在the last section about setInterval on the MDN中稍微触及了设置间隔的“太忙”问题。但是,设置超时将始终在一段延迟后执行(可能不是确切的延迟,即您的设置超时可能是5ms,但如果在5ms延迟后调用堆栈仍然满,那么回调将不会被执行,直到调用堆栈被清空。)