在 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中文网其他相关文章!