Maison > Article > interface Web > Pourquoi mon appel de fonction « setTimeout » s'exécute-t-il immédiatement ?
Pour tenter de tester les serveurs proxy, une fonction intitulée crawl() a été conçue. L'objectif est que cette fonction invoque doRequest() à des intervalles d'environ 10 secondes. Cependant, malgré l'utilisation de setTimeout(), la fonction est appelée immédiatement.
Pour remédier à cela, il existe trois solutions viables :
Modifier l'ordre des arguments :
setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
Utiliser une chaîne évaluable :
setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
Passer une fonction anonyme :
(function(u, p, t) { setTimeout(function() { doRequest(u, p); }, t); })(url, proxys[proxy], proxytimeout);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!