首頁 > web前端 > js教程 > 主體

如何有效地暫停和恢復 JavaScript 中的逾時?

Barbara Streisand
發布: 2024-10-23 00:18:03
原創
940 人瀏覽過

How to Pause and Resume Timeouts in JavaScript Efficiently?

暫停和恢復JavaScript 超時

在JavaScript 中使用setTimeouts 時,暫停和恢復它們的功能在各種情況下都非常有用。人們可能會遇到這樣一種情況:已配置延遲,但在執行之前需要暫停或等待非同步操作完成。

使用自訂包裝器暫停和恢復超時

無需存儲當前時間併計算剩餘持續時間,可以圍繞window.setTimeout 創建一個提供暫停和恢復功能的自訂包裝器。這種方法提供了一種更優雅且可重複使用的解決方案:

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();
};
登入後複製

此自訂 Timer 類別可讓您根據需要暫停和恢復逾時。要使用它,請使用回調函數和延遲對其進行初始化,然後根據需要呼叫pause()或resume()方法。

範例:

var timer = new Timer(function() {
    alert("Done!");
}, 1000);

timer.pause();
// Perform asynchronous operations or other tasks
timer.resume();
登入後複製

注意: 此自訂包裝器不提供擷取暫停計時器的剩餘時間的方法。或者,可以實作一個更全面的包裝器來追蹤剩餘時間並提供 getTimeRemaining() 方法。

以上是如何有效地暫停和恢復 JavaScript 中的逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!