Middle
Come funziona Promise in JavaScript?
sobes.tech AI
Risposta dell'AI
- Oggetto che rappresenta una possibile conclusione (o fallimento) di un'operazione asincrona e il suo valore risultante.
- Stati di una promessa:
pending: stato iniziale, né completato né rifiutato.fulfilled: indica che l'operazione è stata completata con successo.rejected: indica che l'operazione si è conclusa con un errore.
- La transizione da
pendingafulfilledorejectedavviene una sola volta e in modo irreversibile. - Metodi:
.then(onFulfilled, onRejected): accetta due funzioni di callback. La prima (onFulfilled) viene chiamata in caso di successo, la seconda (onRejected) in caso di errore. Entrambi gli argomenti sono opzionali. Restituisce una nuova promessa..catch(onRejected): forma abbreviata di.then(null, onRejected). Usata per gestire gli errori. Restituisce una nuova promessa..finally(onFinally): viene chiamata indipendentemente dal risultato della promessa (successo o errore). Utile per liberare risorse. Restituisce una nuova promessa.
- Creazione di una promessa:
new Promise((resolve, reject) => {
// Operazione asincrona
const success = true;
if (success) {
resolve("Operazione riuscita!"); // Passa allo stato fulfilled
} else {
reject("Qualcosa è andato storto..."); // Passa allo stato rejected
}
});
- Chaining di promesse:
.then(),.catch(),.finally()restituiscono promesse, permettendo di creare catene per eseguire operazioni asincrone in sequenza.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Errore:', error));