Maison > interface Web > js tutoriel > Comment puis-je m'assurer qu'une fonction appelée avec « setInterval » ne s'exécute qu'une seule fois ?

Comment puis-je m'assurer qu'une fonction appelée avec « setInterval » ne s'exécute qu'une seule fois ?

Patricia Arquette
Libérer: 2024-12-04 01:54:11
original
449 Les gens l'ont consulté

How Can I Ensure a Function Called with `setInterval` Executes Only Once?

Gérer les fonctions planifiées avec setInterval et clearInterval

Considérez le fragment de code suivant :

function doKeyDown(event) {
    switch (event.keyCode) {
        case 32:
            /* Space bar was pressed */
            if (x == 4) {
                setInterval(drawAll, 20);
            }
            else {
                setInterval(drawAll, 20);
                x += dx;
            }
            break;
    }
}
Copier après la connexion

L'objectif est de appelez la fonction drawAll une seule fois, ne créez pas de boucle qui invoque à plusieurs reprises it.

Utiliser clearInterval pour arrêter l'exécution récurrente

setInterval établit une minuterie récurrente qui appelle périodiquement la fonction spécifiée. Pour arrêter son exécution, nous pouvons utiliser clearInterval. Voici comment cela fonctionne :

var handle = setInterval(drawAll, 20);

// When you want to stop it:
clearInterval(handle);
handle = 0; // Indication of an uncleared interval
Copier après la connexion

Sur les navigateurs, le handle est garanti comme étant une valeur numérique non nulle. Ainsi, définir handle = 0 sert d'indicateur pratique pour indiquer que l'intervalle a été effacé.

Planification d'un appel de fonction unique

Si l'intention est de exécutez une fonction une seule fois, envisagez plutôt d'utiliser setTimeout. Cette fonction planifie l'invocation d'une fonction après un intervalle de temps spécifié, mais ne continue pas à la déclencher par la suite. Il renvoie également une poignée pour une annulation potentielle.

setTimeout(drawAll, 20);
Copier après la connexion

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