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
Eseguire operazioni con timeout in React
Sostituire la GitHub Action di login su private registry
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Hosting di componenti WebAssembly in un'applicazione Blazor static
Definire stili a livello di libreria in Angular
Utilizzare i primary constructor in C#
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Utilizzare Model as a Service su Microsoft Azure
Utilizzare un service principal per accedere a Azure Container Registry
I più letti di oggi
- Creare un messaggio di posta in diversi formati con ASP.NET 2.0
- Caricare un DTO esposto da un servizio tramite una query LINQ to Entities in Entity Framework
- Utilizzare il metodo reduce in #javascript https://aspit.co/ccc di @morwalpiz
- Elencare gli utenti di un dominio NT con ADSI
- Utilizzare SQL e #linq per eseguire una query con #entityframework Core https://aspit.co/bfv di @sm15455 #efcore1
- Disponibile il codice sorgente di ASP.NET MVC
- Concludiamo in bellezza con Giancarlo Sudano di Microsoft: q# for quantum programming Siamo in live streaming da: https://aspit.co/netconf-22 #aspilive #netconfit
- Caricare i dati di configurazione allo startup di un'applicazione Angular
- rilasciati nuovi template per la #aspnet web pages. funzionano anche con #webmatrix: http://u.aspitalia.com/lu
- Creare automaticamente una pipeline YAML da una sua definizione in Azure DevOps