Rumah >hujung hadapan web >tutorial js >Mengapa Fungsi setInterval Saya Hanya Berjalan Sekali?
Memahami Fungsi setInterval dan Pelaksanaannya
Fungsi setInterval ialah alat yang berguna untuk menjadualkan tugas untuk dijalankan pada selang masa yang tetap dalam JavaScript. Walau bagaimanapun, pembangun mungkin menghadapi isu di mana fungsi panggil balik nampaknya hanya dilaksanakan sekali sahaja dan bukannya berterusan.
Isu: Panggilan Balik Tidak Melaksanakan Seperti Yang Dijangkakan
Satu sebab biasa untuk ini tingkah laku ialah penggunaan panggilan fungsi setInterval yang salah. Panggilan balik hendaklah rujukan fungsi, bukan panggilan fungsi.
Penjelasan: Panggilan Fungsi lwn. Rujukan
Dalam kes contoh yang diberikan:
window.setInterval(timer(), 1000)
Terdapat kurungan yang hilang selepas fungsi pemasa, menyebabkan ia menjadi panggilan fungsi dan bukannya rujukan. Ini menghasilkan pelaksanaan segera fungsi pemasa dan seterusnya menetapkan selang untuk hasil yang dilaksanakan, yang tidak ditentukan.
Penyelesaian: Membetulkan Sintaks
Untuk membetulkan ini mengeluarkan dan memastikan pelaksanaan panggilan balik yang berterusan, gunakan rujukan fungsi sebagai berikut:
window.setInterval(timer, 1000);
Sebagai alternatif, anda boleh menggunakan fungsi tanpa nama sebagai panggilan balik, yang lebih pendek tetapi mungkin mengurangkan kebolehbacaan untuk fungsi yang lebih besar:
window.setInterval( function() { console.log("timer!"); }, 1000)
Ini memastikan bahawa fungsi pemasa adalah dijadualkan berjalan pada selang waktu 1000 milisaat yang ditetapkan.
Atas ialah kandungan terperinci Mengapa Fungsi setInterval Saya Hanya Berjalan Sekali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!