Le Promise in JavaScript rappresentano un meccanismo per gestire operazioni asincrone, fungendo da rappresentazione di un valore che potrebbe non essere ancora disponibile.
Esse migliorano la leggibilità del codice rispetto all’uso di funzioni di callback multiple, permettendo di catenare operazioni asincrone in modo più ordinato attraverso .then() e .catch() per gestire rispettivamente il successo e il fallimento.
Il concetto di chaining (concatenazione) permette di eseguire sequenze di operazioni asincrone in modo più chiaro, passando il risultato di una promise alla successiva.
È possibile creare promise personalizzate utilizzando il costruttore new Promise(), che accetta una funzione con i parametri resolve (per risolvere la promise) e reject (per rifiutarla).
L’utilizzo di .catch() consente di gestire in modo centralizzato gli errori che possono verificarsi in qualsiasi punto della catena di promise.