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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-28 22:34:11740parcourir

Why Is My setInterval Function Only Running Once?

Comprendre la fonction setInterval et son exécution

La fonction setInterval est un outil utile pour planifier des tâches à exécuter à intervalles réguliers en JavaScript. Cependant, les développeurs peuvent rencontrer des problèmes où la fonction de rappel semble s'exécuter une seule fois au lieu de continuellement.

Le problème : le rappel ne s'exécute pas comme prévu

Une raison courante à cela ce comportement est une utilisation incorrecte de l’appel de fonction setInterval. Le rappel doit être une référence de fonction, pas un appel de fonction.

Explication : appel de fonction vs référence

Dans le cas de l'exemple fourni :

window.setInterval(timer(), 1000)

Il manque une parenthèse après la fonction timer, ce qui en fait un appel de fonction plutôt qu'une référence. Cela entraîne l'exécution immédiate de la fonction timer et définit ensuite l'intervalle pour le résultat exécuté, qui n'est pas défini.

Solution : Corriger la syntaxe

Pour corriger cela et assurez l'exécution continue du rappel, utilisez une référence de fonction comme suit :

window.setInterval(timer, 1000);

Vous pouvez également utiliser une fonction anonyme comme rappel, qui est plus court mais peut réduire la lisibilité pour les fonctions plus volumineuses :

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

Cela garantit que la fonction de minuterie est programmée pour s'exécuter à l'intervalle spécifié de 1 000 millisecondes.

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