L'asynchronisme est l'un des concepts les plus importants de JavaScript moderne. Il permet d'exécuter du code sans bloquer le reste du programme.
Pourquoi c'est important ? Imaginez que vous chargez des données depuis un serveur. Sans asynchronisme, votre page serait totalement bloquée pendant le chargement. Avec l'asynchronisme, votre application reste fluide et réactive !
Dans ce cours : setTimeout, setInterval, callbacks, et des exemples concrets comme un chronomètre et un compte à rebours.
Code Synchrone : Les instructions s'exécutent l'une après l'autre, dans l'ordre.
Code Asynchrone : Certaines opérations sont différées et ne bloquent pas l'exécution.
setTimeout() exécute une fonction une seule fois après un délai spécifié (en millisecondes).
Syntaxe :
💡 Astuce : On peut annuler un setTimeout avec clearTimeout()
setInterval() exécute une fonction de manière répétée à intervalle régulier.
⚠️ Important : Il faut arrêter un setInterval avec clearInterval(), sinon il continue indéfiniment !
Un callback est une fonction passée en paramètre à une autre fonction, qui sera exécutée plus tard.
Callback avec paramètres :
👆 Copiez ces exemples dans la console interactive !
🎯 Objectifs de ce cours :
✅ Comprendre la différence entre code synchrone et asynchrone
✅ Maîtriser setTimeout() et setInterval()
✅ Utiliser clearTimeout() et clearInterval()
✅ Créer des callbacks efficaces
✅ Construire un chronomètre et un compte à rebours
📖 Points clés à retenir :
• setTimeout() exécute du code APRÈS un délai (une seule fois)
• setInterval() exécute du code de manière RÉPÉTÉE
• Toujours utiliser clearTimeout() et clearInterval() pour libérer les ressources
• Les callbacks sont des fonctions passées en paramètre
• Le code asynchrone ne bloque pas l'exécution du reste du programme
• 1000 millisecondes = 1 seconde
🏋️ Exercices pratiques :
1. Compte à rebours personnalisé : Créez un compte à rebours qui affiche chaque seconde dans la console, et qui affiche "🎉 Terminé !" à la fin
2. Horloge : Utilisez setInterval() pour afficher l'heure actuelle toutes les secondes (indice : new Date().toLocaleTimeString())
3. Animation de points : Affichez "Chargement", puis "Chargement.", puis "Chargement..", puis "Chargement...", et recommencez (utilisez setInterval)
4. Rappel après délai : Créez une fonction qui affiche un message, attend 2 secondes, affiche un deuxième message, attend 2 secondes, puis affiche un troisième message
5. Chronomètre avec millisecondes : Améliorez le chronomètre pour afficher aussi les millisecondes (00:00:00.000)
💡 Astuce pro :
En JavaScript, l'asynchronisme est géré par la Event Loop. Le navigateur exécute d'abord tout le code synchrone, puis traite les tâches asynchrones dans une file d'attente. C'est pourquoi dans l'exemple "console.log('1'); setTimeout(...); console.log('3');", le 3 s'affiche avant le 2 !
