Les différences entre setTimeout, setInterval et setImmediate
setTimeout
La fonction setTimeout()
permet de planifier l’exécution d’une fonction après un délai spécifié, exprimé en millisecondes. Le code est exécuté une seule fois.
Par exemple, si vous souhaitez exécuter une fonction nommée maFonction
après un délai de 5 secondes, vous pouvez utiliser setTimeout(maFonction, 5000)
.
setInterval
La fonction setInterval()
permet de planifier l’exécution répétée d’une fonction, à des intervalles de temps spécifiés, également exprimés en millisecondes. Cette fonction continue d’être appelée jusqu’à ce que clearInterval(intervalId)
soit appelé, ou que la fenêtre du navigateur soit fermée.
Par exemple, si vous souhaitez exécuter une fonction nommée maFonction
toutes les 3 secondes, vous pouvez utiliser const intervalId = setInterval(maFonction, 3000)
.
setImmediate
La fonction setImmediate()
permet d'exécuter du code de manière asynchrone en planifiant l'exécution d'une fonction dès que possible, une fois que le moteur JavaScript a terminé d'exécuter le code en cours, mais avant de traiter d'autres événements dans la file d'attente.
Voici comment cela fonctionne :
- Vous appelez
setImmediate(maFonction)
, oùmaFonction
est la fonction que vous voulez exécuter. - JavaScript continue d’exécuter le reste du code normalement.
- Une fois que tout le reste du code a été exécuté, JavaScript exécute
maFonction
.
console.log('Début');
setImmediate(() => {
console.log('Ceci est affiché en dernier');
});
console.log('Fin');
Dans cet exemple, “Fin” sera affiché avant “Ceci est affiché en dernier”, même si la fonction passée à setImmediate()
est définie en premier. C’est parce que setImmediate()
permet au reste du code de s’exécuter avant d’exécuter la fonction qu’il contient.