Les programmeurs utilisent des événements de synchronisation pour retarder l'exécution de certains codes ou pour répéter le code à un intervalle spécifique.
Il existe deux fonctions natives dans la bibliothèque JavaScript utilisées pour accomplir ces tâches: setTimeout()
et setInterval()
.
setTimeout
setTimeout()
est utilisé pour retarder l'exécution de la fonction passée d'un laps de temps spécifié.
Vous passez à deux paramètres setTimeout()
: la fonction que vous souhaitez appeler et la durée en millisecondes pour retarder l'exécution de la fonction.
N'oubliez pas qu'il y a 1000 millisecondes (ms) dans une seconde, donc 5000 ms équivaut à 5 secondes.
setTimeout()
exécutera la fonction à partir du premier argument une fois après que le temps spécifié se soit écoulé.
Exemple:
let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); }
Lorsque la delayTimer
fonction est appelée, elle s'exécute setTimeout
. Après 3 secondes (3000 ms), il s'exécutera, delayedFunction
ce qui enverra une alerte.
setInterval
Utilisez setInterval()
pour spécifier une fonction à répéter avec un délai entre les exécutions.
Là encore, deux paramètres sont passés à setInterval()
: la fonction que vous souhaitez appeler et la durée en millisecondes pour retarder chaque appel de la fonction.
setInterval()
continuera à s'exécuter jusqu'à ce qu'il soit effacé.
Exemple:
let intervalID; function repeatEverySecond() { intervalID = setInterval(sendMessage, 1000); } function sendMessage() { console.log(“One second elapsed.”); }
Lorsque votre code appelle la fonction, repeatEverySecond
il s'exécute setInterval
. setInterval
exécutera la fonction sendMessage
toutes les secondes (1000 ms).
clearTimeout et clearInterval
Il existe également des fonctions natives correspondantes pour arrêter les événements de chronométrage: clearTimeout()
et clearInterval()
.
Vous avez peut-être remarqué que chaque fonction de minuterie ci-dessus est enregistrée dans une variable. Lorsque la fonction setTimeout
ou setInterval
s'exécute, un numéro lui est attribué, qui est enregistré dans cette variable. Notez que JavaScript fait tout cela en arrière-plan.
Ce numéro généré est unique pour chaque instance de minuteries. Ce numéro attribué est également la façon dont les minuteries sont identifiées lorsque vous souhaitez les arrêter. Pour cette raison, vous devez toujours régler votre minuterie sur une variable.
Pour plus de clarté de votre code, vous devez toujours faire correspondre clearTimeout()
à setTimeout()
et clearInterval()
à setInterval()
.
Pour arrêter une minuterie, appelez la fonction d'effacement correspondante et transmettez-lui la variable d'ID de minuterie qui correspond à la minuterie que vous souhaitez arrêter. La syntaxe pour clearInterval()
et clearTimeout()
sont les mêmes.
Exemple:
let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); } function clearAlert() { clearTimeout(timeoutID); }