ANÚNCIO

~/questoes/programacao

Qual é a vantagem de usar async/await em vez de callbacks tradicionais no Repository?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Programação async/await Intermediario
Aula de referência Curso de Node JS Aula 11 Refatorar para o MVC Pattern Repository
Para fixar

Async/Await vs Callbacks no Repository Pattern

Conceito central

Async/await é uma sintaxe moderna do JavaScript que permite escrever código assíncrono com aparência síncrona, substituindo os callbacks tradicionais. No Repository Pattern, essa abordagem melhora significativamente a legibilidade do código e facilita o tratamento de erros nas operações de banco de dados.

Por que essa resposta faz sentido

Async/await elimina o problema do callback hell (callbacks aninhados) e torna o código mais legível, parecendo ser síncrono mesmo sendo assíncrono. Além disso, o tratamento de erros com try/catch fica muito mais simples e intuitivo do que com callbacks tradicionais.

Armadilhas comuns

  • Confundir melhorias de legibilidade com melhorias de desempenho. Async/await não é mais rápido, apenas mais legível.
  • Pensar que async/await elimina totalmente a necessidade de tratamento de erros. Erros ainda ocorrem e precisam ser capturados com try/catch.
  • Achar que callbacks são uma tecnologia obsoleta. Eles ainda funcionam e aparecem em muitas bibliotecas antigas, mas async/await é a forma moderna recomendada.

Entenda as alternativas

A

Callbacks funcionam sim com operações de banco de dados em Node.js. O problema não é funcionar ou não, mas sim que eles criam código difícil de ler quando aninhados (callback hell). Async/await oferece uma alternativa melhor, não porque callbacks não funcionem, mas porque melhora a qualidade do código.

B

Async/await não é mais lento que callbacks. Na verdade, ambos são compilados para a mesma coisa internamente. A diferença está na legibilidade e manutenibilidade, não na velocidade de execução.

C

Async/await não elimina a necessidade de tratamento de erros. O que muda é a forma como tratamos: usamos try/catch em vez de .catch(). Erros ainda precisam ser capturados e tratados adequadamente no seu código.

D

Essa é a resposta correta. Async/await torna o código visualmente parecido com código síncrono, o que aumenta a legibilidade. Evita callbacks aninhados (callback hell) e permite usar try/catch para tratamento de erros, tornando o Repository Pattern muito mais limpo e profissional.

Dica prática: Ao refatorar seu Repository, comece usando async/await em todos os métodos (create, findAll, findById, update, delete). No Controller, também use async nos métodos de rota e envolvra as chamadas do Repository em blocos try/catch. Isso deixará seu código muito mais legível comparado a callbacks aninhados.

Revise pensando: Se você tiver um método do Repository que busca dados no banco de dados, como você chamaria esse método e trataria erros usando async/await?