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.