Maison >interface Web >js tutoriel >Pourquoi ma fonction de rappel setInterval ne s'exécute-t-elle qu'une seule fois ?

Pourquoi ma fonction de rappel setInterval ne s'exécute-t-elle qu'une seule fois ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-07 00:44:12194parcourir

Why Does My setInterval Callback Function Only Execute Once?

Fonction de rappel setInterval exécutée une fois : résolue

Dans ce scénario, un compteur est destiné à s'exécuter indéfiniment. Examinons une version simplifiée :

function timer() {
  console.log("timer!");
}

window.setInterval(timer(), 1000);

Cependant, cette implémentation donne un résultat inattendu : le message "timer" n'apparaît qu'une seule fois.

Le problème réside dans le premier argument de setInterval. Au lieu de fournir une référence de fonction (timer), le code exécute par erreur la fonction (timer()). Cela peut être corrigé comme suit :

window.setInterval(timer, 1000);

Alternativement, une syntaxe plus concise (mais moins lisible) peut être utilisée :

window.setInterval(function() {
  console.log("timer!");
}, 1000);

En implémentant ces corrections, le compteur va désormais exécuter perpétuellement, remplissant la fonctionnalité prévue.

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!

Déclaration:
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