Mengapa setTimeout Menjalankan Fungsi Saya Serta-merta?
Apabila menggunakan setTimeout, anda mungkin menghadapi senario di mana masa menunggu yang ditentukan diabaikan, menyebabkan fungsi untuk melaksanakan serta-merta. Tingkah laku ini timbul daripada salah tanggapan biasa dalam sintaks yang digunakan.
Perangkap:
Coretan kod di bawah menunjukkan isu:
setTimeout(testfunction(), 2000);
Penjelasan:
Dalam kod, testfunction() ialah dipanggil serta-merta menggunakan kurungan. Ini bermakna setTimeout dijadualkan menunggu hasil testfunction(), yang dilaksanakan serta-merta.
Penyelesaian:
Untuk memastikan setTimeout menunggu untuk yang diingini masa sebelum melaksanakan fungsi, gunakan sintaks ini sebaliknya:
setTimeout(testFunction, 2000);
Perhatikan ketiadaan kurungan selepas testFunction. Dengan meninggalkan kurungan, anda menghantar rujukan kepada fungsi itu sendiri, bukan hasil daripada memanggilnya.
Atas ialah kandungan terperinci Mengapa Fungsi `setTimeout` Saya Dijalankan Serta-merta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!