Sobes.tech
Junior

Como pode tratar um erro (reject) de uma promessa numa função assíncrona?

sobes.tech IA

Resposta da IA

Pode usar try...catch.

async function processData() {
  try {
    const result = await fetchData(); // fetchData() pode retornar uma promessa que será rejeitada
    console.log('Dados obtidos com sucesso:', result);
  } catch (error) {
    console.error('Erro ao obter dados:', error);
    // Aqui pode realizar ações adicionais para tratar o erro
    // Por exemplo, mostrar uma mensagem ao utilizador ou registar um log
  }
}

// Método alternativo com .catch() (menos comum em async/await)
async function processDataAlt() {
  await fetchData()
    .then(result => {
      console.log('Dados obtidos com sucesso:', result);
    })
    .catch(error => {
      console.error('Erro ao obter dados:', error);
    });
}

O uso de try...catch é mais preferido e idiomático para async/await. Permite centralizar o tratamento de erros num único bloco e parece mais síncrono.