FC ConcursosFC Concursos

Questão FC373447

Um servidor Node.js precisa processar várias chamadas de API assíncronas para realizar operações em um banco de dados. É necessário garantir que as operações sejam executadas na or

Desenvolvimento Web

FCC · 2024

Um servidor Node.js precisa processar várias chamadas de API assíncronas para realizar operações em um banco de dados. É necessário garantir que as operações sejam executadas na ordem correta e que os erros sejam tratados adequadamente, evitando que falhas comprometam a execução das próximas chamadas. Nesse contexto e em condições ideais, a maneira mais apropriada de estruturar o código para garantir a sequência correta e o tratamento de erros adequado é

  1. usar Promise.all( ) para garantir a ordem e ignorar o tratamento de erros, já que o Node.js gerencia os erros automaticamente.
  2. envolver as chamadas assincronas em um bloco try/catch eusar await.
  3. usar then( ), catch( ), finally( ) e execute( ) em todas as chamadas de métodos da classe Connection.
  4. fazer todas as chamadas assíncronas usando a função asynchronous/wait com try/catch para tratar as exceções.
  5. colocar todas as chamadas assíncronas em uma função setTimeout com throws para tratar exceções.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

try/catch + await é a forma mais adequada porque transforma promessas em um fluxo imperativo, fazendo com que cada chamada assíncrona espere a anterior terminar, garantindo a execução sequencial.

Ao usar await, o código pausa até a resolução ou rejeição da Promise; se ocorrer uma rejeição, o erro é lançado no ponto do await e pode ser capturado pelo bloco try/catch, evitando rejeições não tratadas.

Com isso, você consegue tratar o erro de forma localizada (log, retries, compensações) dentro do catch e decidir se a sequência continua ou deve ser interrompida, mantendo controle explícito do fluxo.

Em prática, para não comprometer operações subsequentes, envolva cada operação crítica em seu próprio try/catch ou trate erros dentro do loop; use finally para liberar recursos/rollback quando necessário.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo