Maison > interface Web > js tutoriel > Comment transmettre correctement les paramètres aux rappels setTimeout() en JavaScript ?

Comment transmettre correctement les paramètres aux rappels setTimeout() en JavaScript ?

Patricia Arquette
Libérer: 2024-12-16 17:08:12
original
440 Les gens l'ont consulté

How Do I Correctly Pass Parameters to setTimeout() Callbacks in JavaScript?

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);
}
Copier après la connexion

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);
Copier après la connexion

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);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal