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
Estrarre dati randomici da una lista di oggetti in C#
Le novità di Angular: i miglioramenti alla CLI
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Usare il colore CSS per migliorare lo stile della pagina
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Creazione di componenti personalizzati in React.js con Tailwind CSS
Creare gruppi di client per Event Grid MQTT
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Disabilitare automaticamente un workflow di GitHub (parte 2)
Creare una custom property in GitHub