Até aqui, vimos exemplos com Promises que, à primeira vista, parecem desnecessários.
Isso levanta uma dúvida muito justa:
“Isso não poderia ser feito com uma função simples?”
Nesta aula, vamos responder essa pergunta com exemplos reais — mostrando situações onde:
- Funções simples funcionam
- Funções simples quebram
- Promises resolvem
- async/await simplifica drasticamente
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Saber quando uma função simples é suficiente
- Entender quando Promises são necessárias
- Reconhecer problemas assíncronos reais
- Usar async/await para reduzir complexidade
Caso 1 — Função simples funciona
Quando tudo acontece imediatamente, uma função simples é perfeita.
function dobrar(numero) {
return numero * 2;
}
console.log(dobrar(4)); // Saída será 8
Aqui:
- Não há espera
- Não há erro assíncrono
- Não há dependência externa
👉 **Promises seriam exagero.**
Caso 2 — Função simples quebra
Agora imagine um dado que só chega depois.
function buscarUsuario()
{
setTimeout(() =>
{ return
{ nome: "Daniel" };
}, 1000);
}
const usuario = buscarUsuario();
console.log(usuario);
console.log(usuario); // Saída será undefined Por quê?
- O
returnacontece dentro do callback - A função termina antes do dado existir
👉 **Aqui a função simples falha.**
Caso 3 — Promise resolve o problema
Agora o mesmo problema resolvido corretamente:
function buscarUsuario()
{
return new Promise(resolve =>
{
setTimeout(() =>
{
resolve({ nome: "Daniel" });
}, 1000);
});
}
buscarUsuario().then(usuario =>
{
console.log(usuario.nome); // Saída será Daniel
});
Aqui:
- A função retorna imediatamente
- Mas o valor só chega quando estiver pronto
Caso 4 — Encadeamento sem Promise vira caos
Imagine múltiplas operações dependentes:
buscarUsuario(function (usuario)
{
buscarPedidos(usuario.id, function (pedidos)
{
buscarDetalhes(pedidos[0], function (detalhes)
{
console.log(detalhes);
});
});
}); Caso 5 — Promises organizam o fluxo
buscarUsuario() .then(usuario => buscarPedidos(usuario.id)) .then(pedidos => buscarDetalhes(pedidos[0])) .then(detalhes =>
{
console.log(detalhes);
}) .catch(erro =>
{
console.log("Erro:", erro);
}); O fluxo agora é:
- Linear
- Legível
- Com tratamento de erro centralizado
Caso 6 — async/await simplifica ainda mais
O mesmo código com async/await:
async function executar()
{
try
{
const usuario = await buscarUsuario();
const pedidos = await buscarPedidos(usuario.id);
const detalhes = await buscarDetalhes(pedidos[0]);
console.log(detalhes);
} catch (erro)
{
console.log("Erro:", erro);
}
}
executar();
Agora:
- Fluxo parece síncrono
- Mas continua assíncrono
- Mais fácil de ler
- Mais fácil de manter
Comparação honesta
- Função simples → dados imediatos
- Promise → dados futuros
- async/await → Promises legíveis
Resumo da aula para nunca mais esquecer
- Funções simples não esperam dados
- Promises representam valores futuros
- Promises resolvem problemas assíncronos reais
- Use Promise quando o valor que você precisa ainda não está disponível AGORA, mas estará no futuro
- async/await torna o código mais legível
- Nada aqui é mágico — é controle de fluxo
Na próxima aula, vamos aplicar async/await em cenários reais com fetch, erros de rede e controle de fluxo completo.
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?
Mario em Donkey Kong
O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
Recorde de patentes
A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.
Muitos aplicativos
Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.
Cuidados com o notebook
Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.










