Sobes.tech
Junior

Que formas de trabalhar com código assíncrono conheces?

sobes.tech IA

Resposta da IA

Callbacks, Promessas, async/await.

Callbacks: Funções passadas como argumentos para outras funções, que são chamadas após a conclusão de uma operação assíncrona.

Promessas: Objetos que oferecem uma forma mais conveniente de gerir a assíncronia em comparação com callbacks. Têm estados pending, fulfilled e rejected.

// Exemplo de Promessa
function asyncOperation() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Operação concluída com sucesso!');
    }, 1000);
  });
}

asyncOperation()
  .then(result => console.log(result))
  .catch(error => console.error(error));

async/await: Açúcar sintático sobre Promessas, que torna o código assíncrono mais parecido com o síncrono e melhora a sua legibilidade.

// Exemplo de async/await
async function performAsyncOperation() {
  try {
    const result = await asyncOperation();
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}

performAsyncOperation();

Comparação de métodos:

Método Legibilidade / Manutenção Tratamento de erros Controle do fluxo
Callbacks Menos legível (Callback Hell) Difícil Difícil
Promessas Melhorada Confortável (.catch) Confortável (.then, .catch)
async/await Melhor Confortável (try...catch) Confortável (await)

O método mais preferido em aplicações modernas de Node.js é usar async/await devido à sua legibilidade e conveniência. Promessas continuam a ser uma ferramenta importante, especialmente em níveis mais baixos de implementação. Callbacks são usados em código obsoleto ou para operações de baixo nível no núcleo do Node.js.