Passer des paramètres aux rappels setTimeout()
En JavaScript, la fonction setTimeout() vous permet de planifier l'exécution d'une fonction après un délai spécifié sans bloquer la boucle d'événements. Cependant, il est essentiel de comprendre comment transmettre correctement les paramètres à la fonction de rappel.
Considérez le code suivant :
function statechangedPostQuestion() { // ... setTimeout("postinsql(topicId)", 4000); }
Ce code tente de transmettre le paramètre topicId à la fonction postinsql() en utilisant une chaîne. Cependant, cette approche est obsolète et ne fonctionne pas dans les versions JavaScript actuelles.
Pour transmettre correctement les paramètres à un rappel setTimeout(), vous devez définir le rappel comme une fonction anonyme et le transmettre directement en argument :
setTimeout(function() { postinsql(topicId); }, 4000);
Cette approche garantit que la fonction n'est pas appelée immédiatement et que le paramètre topicId est disponible dans le rappel.
Mise à jour :
Avec l'avènement du JavaScript moderne, il est désormais possible de transmettre des arguments aux rappels setTimeout() à l'aide de Function.prototype.bind(). Cette approche fournit un moyen concis de lier des arguments à une fonction sans créer de fonction anonyme :
setTimeout(postinsql.bind(null, topicId), 4000);
En suivant ces directives, vous pouvez transmettre correctement les paramètres aux rappels setTimeout(), garantissant ainsi une exécution correcte et évitant les erreurs.
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!