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?
Space Invaders
O título Space Invaders, lançado em 1980, fez tanto sucesso em todo o mundo que as pessoas compravam o console Atari apenas para poderem jogá-lo em casa. Saiba mais sobre este incrível título clicando aqui.
Música tema do Blanka
Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.
Computadores de 1,5 tonelada
Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.
Playstation
O Playstation só nasceu porque uma parceria entre Sony e Nintendo, para desenvolver uma unidade de CD para o Super Nintendo, fracassou. Clique aqui e saiba mais.
Máquina de Pascal
A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.










