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.