Lessico IT › Web › Top-level await

Top-level await

Web Svenska → Aggiornato: 2026-10-02

La possibilità di usare await direttamente al livello superiore di un modulo ES, senza dover racchiuderlo in una funzione async. Il modulo resta «in pausa» finché l'await non termina, e i moduli che lo importano attendono a loro volta: utile per l'inizializzazione asincrona.

Il vecchio problema: await era utilizzabile solo dentro funzioni async, quindi l'inizializzazione asincrona a livello di modulo richiedeva espedienti poco eleganti (una funzione async autoinvocata, oppure l'esportazione di una promise). Il top-level await (ES2022, nei moduli) permette di scrivere direttamente const db = await openDatabase(). Il meccanismo: il modulo diventa «asincrono», la sua esecuzione si sospende all'await e tutti i moduli che lo importano aspettano il completamento prima di partire, il che dà un ordinamento pulito delle dipendenze asincrone.

Casi d'uso: aprire una connessione a un database, caricare una configurazione o un modulo WASM, scegliere una dipendenza in modo dinamico, prima che le esportazioni siano pronte. Attenzione: ritarda tutti i moduli dipendenti, quindi va usato con giudizio, perché può rallentare l'avvio. Solo nei moduli ES, non in CommonJS. Imparentato con ES modules nel browser e import dinamico.

← Torna al lessico