」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > JavaScript 如何控制逾時執行並確定剩餘時間?

JavaScript 如何控制逾時執行並確定剩餘時間?

發佈於2024-11-09
瀏覽:367

How Can I Control Timeout Execution and Determine Remaining Time in JavaScript?

JavaScript 中的暫停和恢復逾時

使用 JavaScript 時,可能需要控制非同步操作的流程,例如逾時。在這裡,我們探索暫停和恢復活動逾時的方法,以及檢索當前逾時的剩餘時間。

暫停和恢復逾時

要暫停逾時,您可以使用包裝器攔截 window.setTimeout 呼叫並提供必要功能的函數。包裝函數 Timer 以回調函數和延遲作為參數,並處理剩餘時間的暫停、恢復和追蹤。

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 物件並根據需要呼叫其暫停()和恢復()方法。

檢索剩餘時間

取得剩餘時間當前超時的時間,一種方法是儲存設定超時時的開始時間併計算當前時間與暫停時的開始時間之間的差。

var start = Date.now();
var t = setTimeout("dosomething()", 5000);
var remaining = (start   5000) - Date.now();

但是,需要注意的是,如果逾時已暫停並恢復,則此計算可能不準確。在前面提供的 Timer 包裝函數中,剩餘時間被追蹤並相應更新,為檢索剩餘時間提供了更可靠的方法。

版本聲明 本文轉載於:1729595660如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3