Um Proxyserver zu testen, wurde eine Funktion mit dem Titel crawl() entwickelt. Das Ziel dieser Funktion besteht darin, doRequest() in Abständen von etwa 10 Sekunden aufzurufen. Trotz der Verwendung von setTimeout() wird die Funktion jedoch sofort aufgerufen.
Um dies zu beheben, gibt es drei praktikable Lösungen:
Ändern Sie die Reihenfolge von Argumente:
setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
Verwenden Sie ein auswertbares string:
setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
Übergeben Sie eine anonyme Funktion:
(function(u, p, t) { setTimeout(function() { doRequest(u, p); }, t); })(url, proxys[proxy], proxytimeout);
Das obige ist der detaillierte Inhalt vonWarum wird mein Funktionsaufruf „setTimeout' sofort ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!