Na aula anterior, entendemos o papel do Event Loop e como ele organiza a execução do JavaScript.
Agora vamos dar um passo além e responder:
quando existem várias tarefas esperando, quem executa primeiro?
A resposta envolve dois tipos de filas:
- Microtasks
- Macrotasks
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender o que são microtasks e macrotasks
- Saber a prioridade entre elas
- Prever a ordem de execução do código
- Evitar armadilhas comuns com Promises e timeouts
O modelo completo de execução
Agora o modelo mental fica assim:
- Call Stack → executa código síncrono
- Microtask Queue → prioridade alta
- Macrotask Queue → prioridade menor
- Event Loop → gerencia tudo
O que são Macrotasks?
Macrotasks são tarefas “maiores”, como:
setTimeoutsetInterval- Eventos do DOM
- Mensagens de timers
Elas entram na Macrotask Queue.
O que são Microtasks?
Microtasks são tarefas de alta prioridade, como:
Promise.thenPromise.catchqueueMicrotask
Elas entram na Microtask Queue.
Exemplo comparativo
console.log("Início");
setTimeout(() =>
{
console.log("Macrotask");
}, 0);
Promise.resolve().then(() =>
{
console.log("Microtask");
});
console.log("Fim");
Qual será a ordem?
console.log("Início"); // Saída: Início
console.log("Fim");
// Saída: Fim
// Microtasks primeiro
// Saída: Microtask
// Depois as macrotasks
// Saída: Macrotask
Por que a microtask vem antes?
Após o Call Stack ficar vazio:
- O Event Loop verifica a Microtask Queue
- Executa todas as microtasks
- Só então pega a próxima macrotask
Essa regra garante consistência em Promises.
Exemplo com múltiplas microtasks
Promise.resolve().then(() => { console.log("Microtask 1"); });
Promise.resolve().then(() =>
{
console.log("Microtask 2");
});
setTimeout(() =>
{
console.log("Macrotask");
}, 0);
Promise.resolve().then(() =>
{
console.log("Microtask 1");
}); // Saída: Microtask 1
Promise.resolve().then(() =>
{
console.log("Microtask 2");
});
// Saída: Microtask 2
setTimeout(() => {
console.log("Macrotask");
}, 0);
// Saída: Macrotask
⚠️ Cuidado com loops de microtasks
Criar microtasks continuamente pode bloquear o Event Loop.
function loopMicrotask()
{
Promise.resolve().then(loopMicrotask);
}
loopMicrotask();
Regra de ouro
Sempre lembre:
- Código síncrono → Call Stack
- Microtasks → prioridade máxima
- Macrotasks → depois
Resumo da aula para nunca mais esquecer
- Event Loop coordena a execução
- Microtasks têm prioridade sobre macrotasks
- Promises usam microtasks
- setTimeout usa macrotasks
- A ordem do console pode ser prevista
Na próxima aula, vamos aplicar tudo isso em exemplos reais com Promises e async/await, consolidando de vez o entendimento da assincronicidade.
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?
Tetris
Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.
Street Fighter 2
Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.
Nintendo Entertainment System
O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.
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.
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.










