Applez Nous: +41 22 518 70 00
JavaScript s’exécute dans un thread d’exécution unique (Single-Threaded). Si une requête réseau vers un serveur distant bloquait l’exécution de manière synchrone pendant 2 secondes, toute l’interface de votre navigateur deviendrait totalement figée et non réactive.
Grâce à la boucle d’événements (Event Loop), les opérations longues (requêtes réseau, minuteurs, lectures de fichiers) sont déléguées aux API de l’environnement hôte, permettant à l’interface de rester parfaitement fluide.
Une promesse représente une valeur future qui peut se trouver dans l’un de trois états : en attente (pending), résolue avec succès (fulfilled), ou rejetée avec une erreur (rejected).
Introduits pour simplifier l’écriture des chaînes de promesses (.then().catch()), les mots-clés async et await permettent de rédiger du code asynchrone avec la clarté et la linéarité du code synchrone :
// Fonction asynchrone simulant un chargement de données
const recupererDonneesEcole = async () => {
try {
console.log("Début de l'interrogation...");
const reponse = await fetch("https://api.ecole-informatique.ch/v1/status");
if (!reponse.ok) {
throw new Error(`Erreur HTTP : statut ${reponse.status}`);
}
const data = await reponse.json();
console.log("Statut des serveurs de Genève :", data.etat);
} catch (erreur) {
console.error("Échec de la communication réseau :", erreur.message);
}
};
Synthèse pédagogique : Enveloppez systématiquement vos appels
awaitau sein d’un bloctry / catchpour intercepter toute défaillance de connexion réseau.