Node.js - 2.5 Code synchrone et asynchrone en JavaScript
Par défaut, JavaScript exécute les instructions une par une. Certaines opérations prennent du temps, comme attendre quelques secondes. Cette leçon montre comment une fonction asynchrone permet de poursuivre l'exécution pendant ce temps.
Une fonction asynchrone qui se termine après un délai
La documentation MDN, une référence officielle, présente deux exemples de fonctions asynchrones. La première se termine après deux secondes. Elle utilise une fonction qui attend un délai, donné en millisecondes en second argument.
Lorsque ce délai est écoulé, la fonction affiche resolved dans la console.
setTimeout(() => {
console.log('resolved');
}, 2000);
Continuer sans attendre le résultat
La deuxième fonction affiche d'abord un message, puis enregistre dans une constante le résultat de la fonction asynchrone. Ce résultat n'est disponible qu'à la fin du délai.
Le message affiché en premier apparaît immédiatement. Le résultat n'apparaît que deux secondes plus tard. JavaScript n'attend pas sur place : il enregistre l'action à exécuter plus tard, puis poursuit le script.
Vérifier l'ordre d'exécution
La vidéo réduit le délai à une milliseconde pour observer l'ordre d'exécution. Le message s'affiche alors avant resolved, sans erreur de précision.
Le délai peut ensuite être porté à quatre secondes, soit 4000 millisecondes. Le résultat reste correct, car le délai peut prendre n'importe quelle valeur.
En résumé
Le code synchrone s'exécute ligne après ligne. Le code asynchrone lance une opération qui se termine plus tard, sans bloquer le reste du script. Un délai, comme celui de setTimeout, permet de voir cette différence. Le résultat est affiché lorsque l'opération est terminée.
Points clés
- Le code synchrone s'exécute dans l'ordre des lignes.
- Le code asynchrone continue sans attendre la fin de l'opération.
- setTimeout exécute une fonction après un délai en millisecondes.
- Un message affiché immédiatement passe avant le résultat différé.
- Le délai peut être modifié selon les besoins.
Questions fréquentes
Que signifie asynchrone ?
Une opération asynchrone se termine plus tard, sans bloquer l'exécution du reste du code.
Pourquoi le délai est-il exprimé en millisecondes ?
Les millisecondes permettent un réglage précis. Une seconde correspond à 1000 millisecondes, donc deux secondes correspondent à 2000.
Peut-on utiliser un délai de quatre secondes ?
Oui. La vidéo montre qu'on peut mettre n'importe quel délai, par exemple 4000 millisecondes pour quatre secondes.