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
Migrare un repository git da Azure DevOps a GitHub
Utilizzare la libreria EntityFrameworkCore.Exceptions per gestire le eccezioni di Entity Framework Core in modo tipizzato
Filtrare le chiamate HTTP ad un App Service in base al servizio Azure
Sfruttare la local cache del browser tramite gli ETag in ASP.NET Core
Leggere il valore di un header della richiesta in ASP.NET Core 6
Introduzione alla security con GitHub
Utilizzare il Service Bus Explorer integrato del portale Azure
Gestire la query string nell'output cache di ASP.NET Core
GitHub Actions e Terraform: l'infrastruttura, dalla definizione al deploy
Gestire il breaking change di Entity Framework Core 7 con tabelle che usano identity e trigger
Creare Higher-Order functions in JavaScript
Velocizzare l'installazione delle dipendenze in un workflow di GitHub
I più letti di oggi
- Linting di un Dockerfile con un workflow di GitHub
- Sfruttare la local cache del browser tramite gli ETag in #aspnetcore https://aspit.co/cfc di @crad77 #webapi #aspnetmvc #blazor #cache
- Monitorare i server on-premises con Azure Arc
- 3 metodi JavaScript che ogni applicazione web dovrebbe contenere - Parte 2