Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menjeda dan Menyambung Masa Tamat dalam JavaScript dengan Cekap?

Bagaimana untuk Menjeda dan Menyambung Masa Tamat dalam JavaScript dengan Cekap?

Barbara Streisand
Barbara Streisandasal
2024-10-23 00:18:031025semak imbas

How to Pause and Resume Timeouts in JavaScript Efficiently?

Menjeda dan Menyambung Semula Tamat Masa JavaScript

Apabila bekerja dengan setTimeouts dalam JavaScript, keupayaan untuk menjeda dan menyambung semulanya boleh berguna dalam pelbagai senario. Seseorang mungkin menghadapi situasi di mana kelewatan telah dikonfigurasikan, tetapi jeda diperlukan sebelum pelaksanaan atau menunggu operasi tak segerak selesai.

Menjeda dan Menyambung Masa Tamat dengan Pembungkus Tersuai

Daripada menyimpan masa semasa dan mengira baki tempoh, anda boleh membuat pembalut tersuai di sekitar window.setTimeout yang menyediakan fungsi jeda dan sambung semula. Pendekatan ini menawarkan penyelesaian yang lebih elegan dan boleh diguna semula:

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();
};

Kelas Pemasa tersuai ini membolehkan anda menjeda dan menyambung tamat masa mengikut keperluan. Untuk menggunakannya, mulakan ia dengan fungsi panggil balik dan lengah, kemudian panggil kaedah jeda() atau resume() seperti yang diperlukan.

Contoh:

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

timer.pause();
// Perform asynchronous operations or other tasks
timer.resume();

Nota: Pembalut tersuai ini tidak menyediakan cara untuk mendapatkan semula baki masa pada pemasa yang dijeda. Sebagai alternatif, seseorang boleh melaksanakan pembungkus yang lebih komprehensif yang menjejaki baki masa dan menyediakan kaedah getTimeRemaining().

Atas ialah kandungan terperinci Bagaimana untuk Menjeda dan Menyambung Masa Tamat dalam JavaScript dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn