Top-level await
Möjligheten att använda await direkt på toppnivå i en ES-modul, utan att behöva linda in det i en async-funktion. Modulen "pausar" tills awaiten är klar, och moduler som importerar den väntar in den — användbart för asynkron initiering.
Problem förr: await fick bara användas inuti async-funktioner, så asynkron initiering på modulnivå krävde fula omvägar (en självanropande async-funktion, eller att exportera ett promise). Top-level await (ES2022, i moduler) låter dig skriva const db = await openDatabase() direkt i modulen. Mekanik: modulen blir "asynkron" — dess exekvering pausar vid awaiten, och alla moduler som importerar den väntar tills den är klar innan de kör → en ren ordning för asynkrona beroenden. Use case: initiera en databasanslutning, ladda en konfiguration eller en WASM-modul, eller välja ett beroende dynamiskt, innan modulens exports är redo. Varning: det fördröjer alla beroende moduler, så använd det medvetet (kan sakta ned uppstart om det missbrukas). Bara i ES-moduler, inte CommonJS. Hör ihop med ES-moduler i webbläsaren och dynamic import.