【问题标题】:is javascript setTimeout guaranteed to firejavascript setTimeout 是否保证触发
【发布时间】:2016-02-18 19:54:33
【问题描述】:

我读过这篇文章: http://ejohn.org/blog/how-javascript-timers-work/ 我知道如果页面太忙,setInterval 可能会放弃一些回调执行。

我也看不出这将如何应用于 setTimeout,因此可以安全地假设 setTimeout 将始终执行(可能会有一些延迟),还是由于进程繁忙而导致 setTimeout 被丢弃的情况?

【问题讨论】:

    标签: javascript settimeout


    【解决方案1】:

    是的。传递给setTimeout 的函数将在某个时候执行。虽然不能保证它的时间。

    【讨论】:

      【解决方案2】:

      是的 - the last section about setInterval on the MDN 中提到了设置间隔的“太忙”问题。但是,设置超时总是会在一些延迟后执行(它可能不是确切的延迟,即您设置的超时可能是 5ms,但是如果在 5ms 延迟后调用堆栈仍然是满的,那么回调将不会执行,直到调用堆栈已清空。)

      【讨论】:

        猜你喜欢
        • 2011-10-14
        • 2015-04-23
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-13
        相关资源
        最近更新 更多