Rumah >hujung hadapan web >tutorial js >Mengapa Fungsi `setTimeout` Saya Dijalankan Serta-merta?

Mengapa Fungsi `setTimeout` Saya Dijalankan Serta-merta?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-18 18:08:11646semak imbas

Why Does My `setTimeout` Function Run Immediately?

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!

Kenyataan:
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