Até agora, sempre usamos await dentro de funções async.
Isso funciona muito bem — mas criava uma limitação artificial:
por que não posso usar await diretamente no arquivo?
O top-level await veio exatamente para resolver isso.
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender o que é top-level await
- Saber onde ele pode ser usado
- Usar
awaitfora de funções - Evitar erros comuns de ambiente
- Escrever módulos mais simples e legíveis
O problema antes do top-level await
Antes, se quiséssemos usar await, precisávamos fazer algo assim:
async function iniciar()
{
const resposta = await fetch("/api/dados");
const dados = await resposta.json();
console.log(dados);
}
iniciar();
Isso criava:
- funções artificiais
- mais indentação
- código menos direto
O que é top-level await?
Top-level await permite usar await:
diretamente no escopo principal de um módulo JavaScript.
Sem precisar envolver em uma função async.
Exemplo simples
const resposta = await fetch("/api/dados");
const dados = await resposta.json();
console.log(dados);
Isso agora é válido — desde que este arquivo seja um módulo.
Onde o top-level await funciona?
Ele funciona apenas em:
- arquivos JavaScript tratados como módulos
<script type="module">- módulos ES no Node.js
Exemplo no navegador
<script type="module"> const resposta = await fetch("/api/dados");
const dados = await resposta.json();
console.log(dados);
Aqui, o navegador entende que o código é modular e permite o uso de await.
O que acontece por baixo dos panos?
Quando você usa top-level await:
- o módulo é carregado
- a execução é pausada no
await - outros módulos aguardam a finalização
Exemplo com import dependente
Arquivo config.js:
export const config = await fetch("/config.json").then(r => r.json()); Arquivo app.js:
import { config } from "./config.js";
console.log(config);
// Saída será o conteúdo do config.json
O JavaScript garante que config esteja pronto antes do uso.
Vantagens reais
- menos código cerimonial
- arquivos mais legíveis
- fluxo linear de execução
- melhor organização de módulos
Cuidados importantes
Use top-level await com consciência:
- não abuse em módulos muito grandes
- evite esperas longas no carregamento inicial
- trate erros adequadamente
await no topo pode atrasar o carregamento de outros módulos. Comparação mental
awaitem função → controle local- top-level
await→ controle de módulo
Cada um tem seu lugar.
Resumo da aula para nunca mais esquecer
- Top-level await permite
awaitfora de funções - Só funciona em módulos
- Deixa o código mais direto
- Bloqueia apenas o módulo atual
- Deve ser usado com moderação
Na próxima aula, vamos conhecer estruturas especiais para memória e performance: WeakMap e WeakSet.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Mortal Kombat - O Filme
O filme Mortal Kombat, inspirado no jogo de mesmo nome, faturou 23 milhões de dólares apenas no fim de semana de estreia nos EUA. Ainda sobre este título de sucesso, outra cifra que impressiona é o faturamento ao longo do primeiro ano: 1 bilhão de dólares no mundo todo.
Asteroids
O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.
Ultima Online
Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
Ábaco
O ábaco é o dispositivo de cálculo mais antigo construído e conhecido pelo homem. Suas formas mais primitivas datam de 400 a.C. e eles foram encontrados na China e na Babilônia. Para saber mais sobre a história dos computadores, clique aqui.










