Top-level Await
JavaScript 🟡 MidDefinition
Permet d'utiliser await directement au niveau module (ESM) sans wrapper async. Le module devient asynchrone et les modules qui l'importent attendent sa resolution.
Analogie
Pouvoir commander directement au drive-in sans devoir d'abord entrer dans le restaurant (la fonction async).
Exemple de code
// config.mjs (ESM)
const res = await fetch('/config.json');
export const config = await res.json();
// app.mjs
import { config } from './config.mjs';
// config est deja resolue ici
Cas d'usage
Charger une configuration ou initialiser une connexion BD au demarrage d'un module ESM.
Anti-pattern
L'utiliser dans un module importe par beaucoup d'autres : ca bloque le chargement de tous les dependants.