Le Promise sono gli oggetti che permettono al JavaScript di gestire la programmazione asincrona. Molto spesso nel nostro codice usiamo solamente il metodo 'get', che come possiamo immaginare permette di ottenere il risultato dell'operazione asincrona, ma esistono anche altri metodi e utility che ci permetteranno di gestire tutte le varianti.
Partiamo dalla definizione di una promise risolta (resolve) e una fallita (reject).
const promise1 = new Promise((resolve, reject) => { resolve('Success!'); }); const promise1 = new Promise((resolve, reject) => { reject('Exception') // o anche // throw 'Exception'; });
Dobbiamo ora leggere questi valori utilizzando i metodi then e catch.
Promise.resolve('OK').then((value) => { console.log(value); // "OK" }) /// Promise.reject('NO').then((value) => { console.log(value); }).catch((error) => { console.log(error); // "NO" });
Infine, se volessimo eseguire operazioni sia in caso di successo che di rigetto, utilizzeremo finally.
Promise.resolve('OK').then((value) => { console.log(value); // "OK" }) /// Promise.reject('NO').then((value) => { console.log(value); }).catch((error) => { console.log(error); }).finally(()=>{ console.log("promise completata") });
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare la software bill of material (SBOM) in GitHub
Filtering sulle colonne in una QuickGrid di Blazor
Sfruttare al massimo i topic space di Event Grid MQTT
Creare una libreria CSS universale: Cards
Creare una libreria CSS universale: i bottoni
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Scrivere selettori CSS più semplici ed efficienti con :is()
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Come EF 8 ha ottimizzato le query che usano il metodo Contains
La gestione della riconnessione al server di Blazor in .NET 9