Questão nº 46

Questão de Tecnologia da Informação · FCC TRT20 2024 (nº 46)

FCC2024Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Bver comentário ↓

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 é

Resposta comentada

Gabarito Alternativa B

Em Node.js, quando precisamos executar operações assíncronas em uma ordem específica e garantir que falhas sejam tratadas sem interromper o fluxo, usamos funções assíncronas (async) com a palavra-chave await para pausar a execução e try/catch para capturar erros.

  • (A) Incorreta: Promise.all() executa Promises em paralelo, não em sequência, e falha se qualquer uma das Promises falhar, sem garantir a ordem de execução das operações subsequentes. Ignorar o tratamento de erros é uma má prática e pode levar a dados inconsistentes ou falhas inesperadas no sistema.
  • (B) Correta: Usar await dentro de uma função async garante que cada chamada assíncrona seja concluída antes que a próxima comece, assegurando a sequência correta. O bloco try/catch envolve essas chamadas, permitindo que erros (rejeições de Promises) sejam capturados e tratados de forma controlada, evitando que uma falha em uma operação comprometa as demais.
  • (C) Incorreta: Embora then(), catch() e finally() sejam válidos para Promises, encadear muitos deles pode levar a um código menos legível (o "callback hell"). A menção de execute() como método da classe Connection é específica demais e não representa uma solução genérica de estruturação. async/await é geralmente preferível para sequências complexas por sua clareza.
  • (D) Incorreta: Esta alternativa é um distrator muito forte e descreve uma abordagem correta. No entanto, a alternativa (B) é ligeiramente mais precisa ao focar na estrutura do try/catch envolvendo as chamadas await. A frase "envolver as chamadas assíncronas em um bloco try/catch e usar await" descreve diretamente a sintaxe e a prática de como estruturar o código para o tratamento de erros em operações sequenciais, enquanto (D) é uma descrição mais geral do uso de async/await com try/catch. Para a pergunta sobre "estruturar o código", a descrição de (B) é mais direta sobre a colocação do try/catch.
  • (E) Incorreta: setTimeout serve para agendar a execução de código após um atraso, não para garantir a ordem de operações assíncronas de banco de dados ou para tratamento de erros robusto. A palavra throws não é uma palavra-chave para tratamento de exceções em JavaScript da forma como é sugerida.

Fonte: FCC TRT20 2024 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 003). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho