Rumah > hujung hadapan web > tutorial js > Mengapakah fungsi setTimeout() saya dilaksanakan dengan serta-merta, walaupun menetapkan kelewatan?

Mengapakah fungsi setTimeout() saya dilaksanakan dengan serta-merta, walaupun menetapkan kelewatan?

Barbara Streisand
Lepaskan: 2024-11-14 18:33:01
asal
535 orang telah melayarinya

Why is my setTimeout() function executing immediately, despite setting a delay?

Pelaksanaan Tertunda Panggilan Fungsi dengan setTimeout

Dalam JavaScript, menggunakan setTimeout() untuk menjadualkan pelaksanaan fungsi pada masa yang lain ialah teknik biasa untuk pengaturcaraan tak segerak. Walau bagaimanapun, terdapat keadaan di mana fungsi itu dilaksanakan serta-merta walaupun dijadualkan dengan kelewatan. Memahami selok-belok setTimeout() adalah penting untuk pelaksanaan tak segerak yang berkesan.

Dalam konteks yang disediakan, fungsi crawl() bertujuan untuk memanggil fungsi doRequest() pada selang anggaran 10 saat. Walau bagaimanapun, fungsi tersebut sedang dilaksanakan serta-merta.

Kunci untuk memahami isu ini terletak pada sintaks setTimeout(). Apabila menyediakan fungsi sebagai parameter, adalah penting untuk menentukan fungsi itu sendiri, diikuti dengan kelewatan, dan kemudian sebarang hujah yang diperlukan oleh fungsi itu.

Penyelesaian Kemungkinan:

  1. Fungsi, Kelewatan dan Argumen:

    Panggil setTimeout() dengan cara berikut:

    Ini memastikan doRequest() adalah diluluskan sebagai fungsi yang akan dilaksanakan, bersama-sama dengan kelewatan dan hujah yang diperlukan.

  2. Fungsi sebagai Rentetan:

    Sebagai alternatif, anda boleh lulus doRequest () sebagai rentetan yang akan dinilai:

    Pendekatan ini memerlukan kurang kurungan dan menyediakan alternatif yang lebih ringkas.

  3. Fungsi Tanpa Nama dengan Penutupan :

    Sertakan doRequest() dalam fungsi tanpa nama untuk mengelakkan perubahan argumen dalam gelung:

    Teknik ini memastikan pembolehubah yang digunakan dalam penutupan kekal konsisten, walaupun seperti gelung itu berjalan. Walau bagaimanapun, ia lebih kompleks sedikit daripada pilihan sebelumnya.

Bergantung pada keperluan khusus anda, mana-mana penyelesaian ini akan menjadualkan pelaksanaan doRequest() dengan penangguhan yang dimaksudkan. Memahami nuansa setTimeout() adalah penting untuk pengaturcaraan tak segerak yang berjaya dalam JavaScript.

Atas ialah kandungan terperinci Mengapakah fungsi setTimeout() saya dilaksanakan dengan serta-merta, walaupun menetapkan kelewatan?. 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