Passer au contenu principal

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 :

  1. Vous appelez setImmediate(maFonction), où maFonction est la fonction que vous voulez exécuter.
  2. JavaScript continue d’exécuter le reste du code normalement.
  3. 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.