Back to Basics: Ca sert à quoi setTimeout en JavaScript ?

Back to Basics: Ca sert à quoi setTimeout en JavaScript ?

En JavaScript, nous avons la boucle d'événements (event loop en bon anglais).

Ainsi, sans les Web Workers, JavaScript est un langage à un seul thread, non bloquant, asynchrone et concurrent.

Que puis-je faire avec la fonction setTimeout ?

Je peux lancer l'exécution d'une partie de votre code après un délai.

Le délai peut être plus long que prévu.

setTimeout(() => console.log('Après le délai'), 5000);

console.log('Avant le délai');

// Imprimé => 'Avant le délai'
// Après ≈ 5 secondes => 'Après le délai'

Encore une chose

Il arrive de rencontrer ce genre de code :

setTimeout(() => {
  someHTMLNode.style.color = 'jaune';
}, 0);

Nous manipulons une propriété d'un élément node (c'est un élément DOM). Mais le DOM n'est pas prêt, someHTMLNode n'existe pas.

Le setTimeout(fn, 0) est un contournement, nous pouvons retarder notre affection après le rendu du DOM !

C'est tout, faites-en bon usage !