Gestione degli errori della promessa JavaScript

Gestione degli errori della promessa JavaScript
Il codice asincrono può utilizzare le promesse per l'applicazione della gestione degli errori strutturati. Durante l'utilizzo delle promesse, è possibile specificare un gestore di errori per "Poi()"Metodo o utilizzare un"presa()"Blocco. Simile alle eccezioni aggiunte nel codice normale, quando una promessa viene rifiutata, cerca il gestore di errori più vicino, in cui l'errore lanciato viene passato come secondo parametro al metodo allora () o il gestore di errore lo passa per catch ().

Questo articolo discuterà di JavaScript Promorce Error Manageing con l'aiuto di esempi adeguati. Quindi iniziamo!

Gestione degli errori della promessa JavaScript

Le promesse vengono utilizzate per la gestione del flusso di esecuzione in un programma. Le promesse con catena sono utili anche quando si eseguono una serie di funzioni asincroni, dove ciascuno dipende dalla funzione precedente. In una promessa, puoi utilizzare due metodi per gestire errori che sono i "Poi()Metodo e il "presa()"Blocco.

Gestione degli errori di promessa JavaScript Using There () Metodo

IL "Poi()"Il metodo viene eseguito quando una promessa viene mantenuta o rifiutata. Se la promessa aggiunta viene mantenuta con successo, la sua funzione di gestore correlata verrà eseguita. Tuttavia, il gestore degli errori per "Poi()"Il metodo verrà eseguito in caso di rifiuto della promessa.

Esempio: Gestione dell'errore di promessa JavaScript utilizzando il metodo allora ()
Nell'esempio seguente, abbiamo aggiunto "Poi()"Metodo, che comprende due callback, uno è la funzione di gestore di successo e l'altro è per la gestione degli errori:

const promettelibj = new Promise ((Resolve, Reject) =>
setTimeout (() =>
rifiuto ("si incontra un errore");
, 2000));
Promisebj.Quindi ((risposta) =>
console.log (risposta);, (errore) =>
console.log (errore); );

L'esecuzione del programma di cui sopra ti mostrerà il seguente output:

Come puoi vedere dall'output, quel gestore specifico del "Poi()"Il metodo funziona perfettamente; Tuttavia, ha anche alcuni svantaggi. Ad esempio, potremmo riscontrare qualsiasi errore nel gestore di successo, ma il gestore di successo aggiunto non può gestirlo. Inoltre, nel caso dell'utilizzo del metodo allora (), è necessario scrivere un gestore di errori per ogni blocco "poi ()". In tale situazione, puoi utilizzare "presa()"Per superare gli svantaggi menzionati.

Esempio 1: Gestione degli errori della promessa JavaScript utilizzando il blocco catch ()
Ora aggiungeremo un catch () per gestire l'errore o lo stato di rifiuto della promessa:

const promettelibj = new Promise ((Resolve, Reject) =>
setTimeout (() =>
rifiuto ("si incontra un errore");
, 2000));
Promisebj.Quindi ((risposta) =>
console.log (risposta);).catch ((errore) =>
console.log (errore); );

Quando una delle promesse aggiunte viene respinta, la catena di promesse rimanente verrà interrotta. Questo è il motivo per cui viene eseguito solo un registro della console:

Esempio 2: Gestione degli errori della promessa JavaScript utilizzando il blocco catch ()
Nell'esempio seguente, prima di tutto, l'oggetto Promise presente accetterà "Taylor"Come argomento del nome e poi mostralo alla console. Successivamente, la funzione verificherà se la funzione Promise viene adempiuta o rifiutata ed eseguirà il codice aggiunto di conseguenza:

const frequence = function (name)
return New Promise ((Resolve, Reject) =>
if (name === "Louis")
restituire rifiuto ("Louis è presente");
altro
setTimeout (() =>
return risolve (nome);
, 2000);

);
presenza ("Taylor")
.Quindi ((data) =>
console.registro (dati);
restituire la partecipazione ("Louis"); )
.Quindi ((data) =>
console.registro (dati);
Restituzione della partecipazione ("Stepheny"); )
.catch ((errore) =>
console.log (errore); )

Promessa JavaScript.tutto () metodo

La promessa.tutto () il metodo JavaScript consente di eseguire più operazioni asincrone contemporaneamente. In tale scenario, il callback verrà eseguito quando la promessa.Tutto il metodo completa le operazioni specificate.

Esempio: usando JavaScript Promise.tutto () metodo
L'esempio fornito eseguirà contemporaneamente le promesse "X","y", E "z". Dopodiché, tutte le promesse torneranno "nome":

const promettlebj = function (name)
return New Promise ((Resolve, Reject) =>
setTimeout (() =>
return risolve (nome);
, 2000);
);
const x = promessobj ("Taylor");
const y = Promisebj ("Stepheny");
const z = Promisebj ("max");
Promettere.tutto ([x, y, z])
.Quindi ((data) =>
console.registro (dati); );

L'esecuzione richiederà solo due secondi per la visualizzazione di tre nomi, mentre in caso di incapacità di promessa richiederà sei secondi:

Promessa JavaScript.Metodo race ()

Se si desidera eseguire il callback non appena la prima operazione asincrona è completa, è possibile utilizzare il "Promettere.gara()" metodo.

Esempio: usando JavaScript Promise.Metodo race ()
Abbiamo creato tre promesse oggetti "X","y", E "z"Con il nome e gli argomenti del tempo passati al"Promisebj ()" funzione:

const promettlebj = function (name, time)
return New Promise ((Resolve, Reject) =>
setTimeout (() =>
return risolve (nome);
, tempo);
);

Qui, "Marie"Ha il minimo tempo di"1"Secondo, quindi vincerà la gara e il suo nome verrà mostrato come output:

const x = promessobj ("Taylor", 3000);
const y = Promisebj ("Stepheny", 2000);
const z = Promisebj ("Marie", 1000);
Promettere.razza ([x, y, z])
.Quindi ((data) =>
console.registro (dati); )
.catch ((errore) =>
console.log (errore);
)

L'output di cui sopra significa che abbiamo implementato con successo la promessa.Metodo race () per l'esecuzione di più operazioni contemporaneamente.

Conclusione

Usando il presa() E Poi() Metodi, è possibile gestire l'errore lanciato o rifiutare () chiamata in metallo promettente. Per gestire gli errori, è preferibile aggiungere un metodo catch () nel codice. Il gestore degli errori quindi esamina il codice e li gestisce di conseguenza. Questo articolo ha spiegato la gestione degli errori della promessa in JavaScript con l'aiuto di esempi adatti.