Rumah > hujung hadapan web > tutorial js > Mengapa Fungsi setInterval Saya Hanya Berjalan Sekali?

Mengapa Fungsi setInterval Saya Hanya Berjalan Sekali?

Linda Hamilton
Lepaskan: 2024-11-28 22:34:11
asal
820 orang telah melayarinya

Why Is My setInterval Function Only Running Once?

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)
Salin selepas log masuk

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);
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan