首頁 >web前端 >js教程 >如何在 JavaScript 中暫停和恢復 setTimeout()?

如何在 JavaScript 中暫停和恢復 setTimeout()?

Linda Hamilton
Linda Hamilton原創
2024-10-23 00:55:03327瀏覽

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