⊗jsSpPrmEx 163 of 294 menu

Situazioni eccezionali nelle Promise in JavaScript

Ora impariamo a gestire le situazioni eccezionali verificatesi all'interno di una Promise. In caso di tale situazione, dobbiamo rifiutare la Promise utilizzando una funzione di rifiuto speciale, che viene automaticamente passata come secondo parametro della funzione della Promise:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { ... }, 3000); });

All'interno della funzione della Promise dobbiamo chiamare resolve se tutto è andato normalmente, oppure reject se si verifica una situazione eccezionale:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // dati della Promise } else { reject('errore nella Promise'); // il tuo testo di errore } }, 3000); });

Quindi nel metodo then devi passare non una, ma due funzioni come parametri: la prima funzionerà se la Promise viene eseguita normalmente (risolta), e la seconda - se viene eseguita con un errore (rifiutata):

promise.then( function(result) { console.log(result); // mostrerà il risultato della Promise }, function(error) { console.log(error); // mostrerà il testo dell'errore } );

Di solito, il codice sopra viene scritto in modo più compatto, in questo modo:

promise.then(function(result) { console.log(result); // mostrerà il risultato della Promise }, function(error) { console.log(error); // mostrerà il testo dell'errore });

Crea un codice asincrono che genererà numeri casuali da 0 a 5. Incorpora tutto questo in una Promise. Lascia che la Promise restituisca come risultato il risultato della divisione di uno per il numero generato. Lascia che la Promise venga eseguita con un errore se si verifica una divisione per zero, e con successo in tutti gli altri casi.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta