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!