首页  >  文章  >  web前端  >  如何在 JavaScript 中暂停和恢复 setTimeout()?

如何在 JavaScript 中暂停和恢复 setTimeout()?

Linda Hamilton
Linda Hamilton原创
2024-10-23 00:55:03254浏览

How to Pause and Resume setTimeout() in JavaScript?

在 JavaScript 中暂停和恢复 setTimeout()

在 JavaScript 中,setTimeout() 允许您安排在指定时间后执行的函数延迟。但是,您可能会遇到需要暂停或恢复超时执行的情况。

暂停和恢复 setTimeout()

要暂停正在运行的超时,您可以可以使用window.clearTimeout()函数。它将要清除的超时 ID 作为参数。暂停后,您可以使用timer.resume()方法恢复超时。

具有暂停/恢复功能的自定义计时器

另一种方法是创建自定义计时器具有暂停和恢复方法的计时器对象。这使您可以更直接地控制超时。以下是此类计时器的示例:

<code class="javascript">var Timer = function(callback, delay) {
    var timerId, start, remaining = delay;

    this.pause = function() {
        window.clearTimeout(timerId);
        timerId = null;
        remaining -= Date.now() - start;
    };

    this.resume = function() {
        if (timerId) {
            return;
        }

        start = Date.now();
        timerId = window.setTimeout(callback, remaining);
    };

    this.resume();
};</code>

获取 setTimeout() 上的剩余时间

不幸的是,没有内置方法可以获取 setTimeout() 上的剩余时间setTimeout()。但是,您可以使用上述方法,手动存储开始时间并在暂停计时器时计算剩余时间。

通过将 setTimeout() 包装在自定义计时器对象中或使用手动时间计算方法,您可以在 JavaScript 中实现超时的暂停和恢复功能。

以上是如何在 JavaScript 中暂停和恢复 setTimeout()?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn