ExpertiDict

JavaScript · Intermediário · Inglês · Técnico

top-level await

/tɑp ˈlɛvəl əˈweɪt/substantivo

Uso de await direto no corpo de um módulo ES, fora de qualquer função async. O módulo só termina de carregar quando a promise resolve, e quem o importa espera.

Onde usar

Aparece em scripts de inicialização, como ler uma configuração ou abrir uma conexão antes de exportar. Em code review, pesa o custo: um await lento atrasa todos os módulos que dependem dele.

Em código

// config.mjs
import { readFile } from 'node:fs/promises';
const txt = await readFile('c.json', 'utf8');
export const cfg = JSON.parse(txt);
// quem importa config.mjs espera o await

Exemplos

With top-level await I load the config before exporting it.

Com top-level await eu carrego a configuração antes de exportá-la.

Top-level await doesn't work in a CommonJS file.

Top-level await não funciona num arquivo CommonJS.

Cuidado

Usar em arquivo CommonJS, onde causa erro de sintaxe.

Veja também

Todos os termos de JavaScript