Sobes.tech
Junior

Come gestire un errore (reject) di una promessa in una funzione asincrona?

sobes.tech AI

Risposta dell'AI

È possibile usare try...catch.

async function processData() {
  try {
    const result = await fetchData(); // fetchData() può restituire una promessa che viene rifiutata
    console.log('Dati ottenuti con successo:', result);
  } catch (error) {
    console.error('Errore nel recupero dei dati:', error);
    // Qui si possono eseguire azioni aggiuntive per gestire l'errore
    // Ad esempio, mostrare un messaggio all'utente o registrare un log
  }
}

// Metodo alternativo con .catch() (meno comune in async/await)
async function processDataAlt() {
  await fetchData()
    .then(result => {
      console.log('Dati ottenuti con successo:', result);
    })
    .catch(error => {
      console.error('Errore nel recupero dei dati:', error);
    });
}

L'uso di try...catch è più preferito e idiomatico per async/await. Permette di centralizzare la gestione degli errori in un unico blocco e appare più sincrono.