Sobes.tech
Junior — Middle

Qual è la differenza tra le strutture async/await e Promise quando si lavora con codice asincrono in JavaScript?

sobes.tech AI

Risposta dell'AI

Promise è un oggetto che rappresenta il risultato di un'operazione asincrona, che può essere completato o rifiutato in futuro. Permette di registrare gestori tramite i metodi then() e catch().

async/await è uno zucchero sintattico sopra Promise, che consente di scrivere codice asincrono in stile sincrono, rendendolo più leggibile e facile da debug.

Principali differenze:

  • Promise richiede catene then/catch per gestire risultato ed errori.
  • async/await permette di usare le parole chiave await per attendere il risultato di Promise all'interno di una funzione asincrona.

Esempio:

// Promise
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

// async/await
async function fetchData() {
  try {
    const response = await fetch(url);
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
fetchData();

In questo modo, async/await semplifica il lavoro con Promise, rendendo il codice più lineare e comprensibile.