Sobes.tech
Junior

Cum poți trata o eroare (reject) a unei promisiuni într-o funcție asincronă?

sobes.tech AI

Răspuns de la AI

Se poate folosi try...catch.

async function processData() {
  try {
    const result = await fetchData(); // fetchData() poate returna o promisiune respinsă
    console.log('Datele au fost preluate cu succes:', result);
  } catch (error) {
    console.error('Eroare la preluarea datelor:', error);
    // Aici puteți efectua acțiuni suplimentare pentru gestionarea erorii
    // De exemplu, afișarea unui mesaj utilizatorului sau înregistrarea unui log
  }
}

// Metodă alternativă cu .catch() (mai puțin frecvent în async/await)
async function processDataAlt() {
  await fetchData()
    .then(result => {
      console.log('Datele au fost preluate cu succes:', result);
    })
    .catch(error => {
      console.error('Eroare la preluarea datelor:', error);
    });
}

Utilizarea try...catch este mai preferată și idiomatică pentru async/await. Permite centralizarea gestionării erorilor într-un singur bloc și pare mai sincronă.