Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Jeda dan Sambung semula setTimeout() dalam JavaScript?

Bagaimana untuk Jeda dan Sambung semula setTimeout() dalam JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-10-23 00:55:03254semak imbas

How to Pause and Resume setTimeout() in JavaScript?

Menjeda dan Menyambung semula setTimeout() dalam JavaScript

Dalam JavaScript, setTimeout() membenarkan anda menjadualkan fungsi untuk dilaksanakan selepas ditetapkan kelewatan. Walau bagaimanapun, anda mungkin menghadapi senario di mana anda perlu menjeda atau menyambung semula pelaksanaan tamat masa.

Menjeda dan Menyambung semula setTimeout()

Untuk menjeda tamat masa berjalan, anda boleh menggunakan fungsi window.clearTimeout(). ID tamat masa diperlukan untuk dikosongkan sebagai hujah. Selepas menjeda, anda boleh menyambung semula tamat masa menggunakan kaedah pemasa.resume().

Pemasa Tersuai dengan Fungsi Jeda/Sambung Semula

Pendekatan alternatif ialah mencipta tersuai objek pemasa dengan kaedah jeda dan sambung semula. Ini membolehkan anda mengawal tamat masa dengan lebih langsung. Berikut ialah contoh pemasa sedemikian:

<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>

Mendapatkan Baki Masa pada setTimeout()

Malangnya, tiada cara terbina dalam untuk menghidupkan baki masa setTimeout(). Walau bagaimanapun, anda boleh menggunakan pendekatan yang diterangkan di atas, di mana anda menyimpan masa mula secara manual dan mengira baki masa apabila menjeda pemasa.

Dengan membalut setTimeout() dalam objek pemasa tersuai atau menggunakan pendekatan pengiraan masa manual , anda boleh mencapai fungsi jeda dan sambung semula untuk tamat masa anda dalam JavaScript.

Atas ialah kandungan terperinci Bagaimana untuk Jeda dan Sambung semula setTimeout() dalam JavaScript?. 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