💻 Programmation🟡 Intermédiaire⏱ 1 min de lecture📂 🧩 Concepts

💻 Programmation · Concepts

Asynchrone : promesses et async/await

Certaines opérations (réseau, disque, base de données) prennent du temps. Plutôt que de bloquer le programme, on les lance et on reprend quand elles sont finies : c'est l'asynchrone.

Schéma
async function profil(id) {
  const rep = await fetch(`/api/users/${id}`); // attend sans bloquer
  return rep.json();
}

Callbacks, promesses, async/await

Trois générations d'écriture. Une Promise représente une valeur future (en attente, tenue ou rejetée). await attend une promesse à l'intérieur d'une fonction async.

La boucle d'événements

Node.js exécute le code sur un seul fil et enchaîne les tâches pendant les attentes. Un calcul lourd et synchrone bloque tout : le bot ne répond plus pendant ce temps.

Gérer les erreurs

try { await … } catch (e) { … }. Une promesse rejetée et jamais traitée peut faire planter le processus : garde toujours un catch.

En parallèle ou à la suite ?

Deux await successifs s'exécutent l'un après l'autre. await Promise.all([a(), b()]) les lance en même temps.

Sur Discord

Presque tout est asynchrone (interaction.reply, message.delete…). Oublier un await fait passer une erreur inaperçue ou mélange l'ordre des actions.

📌 À retenir

await dans une fonction async, try/catch pour les erreurs, Promise.all pour paralléliser.

Teste-toi

En JavaScript, que fait `await` ?
  1. Il bloque tout le programme
  2. Il attend une promesse sans bloquer le reste
  3. Il crée un nouveau thread
  4. Il ignore les erreurs

Réponse : B. Il attend une promesse sans bloquer le reste

await met la fonction async en pause jusqu'à la fin de la promesse, pendant que Node.js traite autre chose.

Plus de questions dans Discord avec /qcm matiere:dev.

Pour aller plus loin

Fiche mise à jour le 6 novembre 2026. Une erreur, une précision à proposer ? Écris-nous.