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
Utilizzare DeepSeek R1 con Azure AI
Escludere alcuni file da GitHub Secret Scanning
Miglioramenti nell'accessibilità con Angular CDK
Configurare il nome della run di un workflow di GitHub in base al contesto di esecuzione
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Recuperare App Service cancellati su Azure
Potenziare la ricerca su Cosmos DB con Full Text Search
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Evitare il flickering dei componenti nel prerender di Blazor 8
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste