setInterval Callback Function Melaksanakan Sekali: Diselesaikan
Dalam senario ini, kaunter bertujuan untuk dijalankan selama-lamanya. Mari kita periksa versi yang dipermudahkan:
function timer() { console.log("timer!"); } window.setInterval(timer(), 1000);
Walau bagaimanapun, pelaksanaan ini menghasilkan hasil yang tidak dijangka: mesej "pemasa" hanya muncul sekali.
Isunya terletak pada hujah pertama setInterval. Daripada menyediakan rujukan fungsi (pemasa), kod tersebut tersilap melaksanakan fungsi (pemasa()). Ini boleh diperbetulkan seperti berikut:
window.setInterval(timer, 1000);
Sebagai alternatif, sintaks yang lebih ringkas (tetapi kurang boleh dibaca) boleh digunakan:
window.setInterval(function() { console.log("timer!"); }, 1000);
Dengan melaksanakan pembetulan ini, kaunter kini akan melaksanakan selama-lamanya, memenuhi fungsi yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Fungsi Panggilan Balik setInterval Saya Hanya Melaksanakan Sekali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!