Le promesse in JavaScript sono funzionalità utili per gestire operazioni asincrone, spesso utilizzate per operazioni di I/O. Una promessa è un oggetto che “promette” di restituire un valore in futuro. Può essere già risolta, in corso o rifiutata.
Per utilizzare una promessa, è possibile utilizzare il costruttore `Promise`. Di seguito è riportato un esempio base di come creare una promessa:
```
let promise = new Promise(function(resolve, reject) {
// Esegui un lavoro, quindi chiama resolve o reject a seconda del risultato
Una promessa ha due possibili esiti: può essere risolta o rifiutata. Se è risolta, allora la “risposta” può essere maneggiata con il metodo `.then()`. Se è rifiutata, l’errore può essere gestito con `.catch()`.
Ecco come si può gestire una promessa risolta:
```
promise.then(
function(result) { /* gestisci il risultato */ },
function(error) { /* gestisci l’errore */ }
);
```
Ecco come si può gestire una promessa rifiutata:
```
promise.catch(
function(error) { /* gestisci l’errore */ }
);
```
Spesso le promesse sono utilizzate con la sintassi async/await, che rende il codice più leggibile e facile da ragionare.
```
async function doSomething() {
try {
let result = await promise;
// gestisci il risultato
} catch (error) {
// gestisci l’errore
}
}
```
L’ uso delle promesse può rendere il tuo codice più modulare e più facile da gestire, specialmente quando si tratta di operazioni asincrone che possono richiedere qualche tempo per completare.