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