Mengapa SetInterval Callback Dilaksanakan Sekali Sahaja?
Pertimbangkan isu berikut: anda cuba mencipta gelung tak terhingga dengan pembilang menggunakan setInterval. Walau bagaimanapun, fungsi panggil balik hanya dilaksanakan sekali. Apa yang boleh berlaku?
Kod yang disediakan ialah:
function timer() { console.log("timer!") } window.setInterval(timer(), 1000)
Kesilapan berpunca daripada menggunakan panggilan fungsi dan bukannya rujukan fungsi sebagai hujah pertama setInterval.
Penggunaan Betul:
Untuk membetulkannya, anda perlu lulus rujukan fungsi itu sendiri, seperti jadi:
function timer() { console.log("timer!"); } window.setInterval(timer, 1000);
Sebagai alternatif, anda juga boleh menggunakan sintaks yang lebih pendek berikut:
window.setInterval( function() { console.log("timer!"); }, 1000)
Atas ialah kandungan terperinci Mengapakah `setInterval` Hanya Menjalankan Panggilan Balik Saya Sekali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!