Apabila menggunakan setTimeout dalam JavaScript, anda mungkin menghadapi masalah di mana fungsi tersebut dilaksanakan serta-merta, tanpa mengambil kira kelewatan yang ditentukan . Anomali ini boleh dikaitkan dengan perangkap biasa.
Isu timbul apabila anda memanggil fungsi dalam argumen setTimeout, seperti ini:
setTimeout(testfunction(), 2000);
Sintaks ini serta-merta menggunakan testfunction(), dan setTimeout menjadualkan nilai pulangan bagi panggilan fungsi itu untuk dilaksanakan selepas kelewatan yang ditentukan. Akibatnya, fungsi berjalan serta-merta dan pemasa menjadi berlebihan.
Untuk menyelesaikan isu ini, anda harus lulus fungsi itu sendiri sebagai hujah tanpa menggunakannya:
setTimeout(testFunction, 2000);
Perhatikan ketiadaan kurungan selepas testFunction. Pendekatan ini memastikan bahawa pelaksanaan fungsi dijadualkan selepas kelewatan telah berlalu, membolehkan ia berfungsi seperti yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa `setTimeout` Melaksanakan Fungsi Saya Serta-merta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!