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

Linda Hamilton
Lepaskan: 2024-11-15 13:25:03
asal
541 orang telah melayarinya

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 memanggil 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]);
    Salin selepas log masuk
  • Gunakan yang boleh dinilai rentetan:

    setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
    Salin selepas log masuk
  • Lulus fungsi tanpa nama:

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

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!

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