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]);
Gunakan yang boleh dinilai rentetan:
setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
Lulus 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!