Sobes.tech
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 pending a fulfilled o rejected avviene 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));