Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memastikan Fungsi yang Dipanggil dengan `setInterval` Melaksanakan Sekali Sahaja?
Menguruskan Fungsi Berjadual dengan setInterval dan clearInterval
Pertimbangkan serpihan kod berikut:
function doKeyDown(event) { switch (event.keyCode) { case 32: /* Space bar was pressed */ if (x == 4) { setInterval(drawAll, 20); } else { setInterval(drawAll, 20); x += dx; } break; } }
Matlamatnya adalah untuk panggil fungsi drawAll sekali sahaja, bukan buat gelung yang berulang kali memanggil ia.
Menggunakan clearInterval untuk Menghentikan Pelaksanaan Berulang
setInterval mewujudkan pemasa berulang yang memanggil fungsi yang ditentukan secara berkala. Untuk menghentikan pelaksanaannya, kita boleh menggunakan clearInterval. Begini cara ia berfungsi:
var handle = setInterval(drawAll, 20); // When you want to stop it: clearInterval(handle); handle = 0; // Indication of an uncleared interval
Pada penyemak imbas, pemegangnya dijamin bukan sifar nilai berangka. Oleh itu, pemegang tetapan = 0 berfungsi sebagai bendera yang mudah untuk menunjukkan bahawa jeda telah dikosongkan.
Menjadualkan Panggilan Fungsi Sekali
Jika niatnya adalah untuk laksanakan fungsi sekali sahaja, pertimbangkan untuk menggunakan setTimeout. Fungsi ini menjadualkan fungsi untuk digunakan selepas selang masa tertentu tetapi tidak meneruskannya selepas itu. Ia juga mengembalikan pemegang untuk kemungkinan pembatalan.
setTimeout(drawAll, 20);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memastikan Fungsi yang Dipanggil dengan `setInterval` Melaksanakan Sekali Sahaja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!