Rumah >hujung hadapan web >tutorial js >Mengapakah panggilan fungsi `setTimeout` saya dilaksanakan dengan serta-merta?

Mengapakah panggilan fungsi `setTimeout` saya dilaksanakan dengan serta-merta?

Linda Hamilton
Linda Hamiltonasal
2024-11-15 13:25:03654semak imbas

Why is my `setTimeout` function call executing immediately?

Mengapakah panggilan fungsi saya dijadualkan oleh setTimeout dilaksanakan serta-merta?

Dalam percubaan untuk menguji pelayan proksi, fungsi bertajuk crawl() telah dicipta. Objektifnya adalah untuk fungsi ini menggunakan doRequest() pada selang masa kira-kira 10 saat. Walau bagaimanapun, walaupun menggunakan setTimeout(), fungsi itu dipanggil serta-merta.

Untuk membetulkannya, terdapat tiga penyelesaian yang berdaya maju:

  • Ubah susunan hujah:

    setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
  • Gunakan rentetan yang boleh dinilai:

    setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
  • Pas fungsi tanpa nama:

    (function(u, p, t) {
      setTimeout(function() { doRequest(u, p); }, t);
    })(url, proxys[proxy], proxytimeout);

Atas ialah kandungan terperinci Mengapakah panggilan fungsi `setTimeout` saya dilaksanakan dengan 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