Promesse in JavaScript | Spiegato

Promesse in JavaScript | Spiegato
JavaScript è un linguaggio di programmazione di alto livello in cui il codice viene eseguito riga per riga, il che significa che la riga di codice successiva viene eseguita solo una volta che la riga di codice precedente è completamente eseguita. Per risolvere questo problema, JavaScript offre funzioni di callback che sono asincroni equivalenti a una funzione.

Il codice asincrono viene eseguito immediatamente e, a differenza del codice sincrono, non attende che la riga di codice precedente termini l'esecuzione. Tuttavia, quando abbiamo a che fare con più operazioni asincroni, l'uso di callback non è una buona scelta poiché il codice diventa confuso, ingestibile e difficile da capire o debug. Quindi la soluzione è usare le promesse.

In questo post, esamineremo il concetto di promesse in JavaScript insieme ad esempi.

Cosa sono promesse?

Una promessa è un'operazione o un compito che sarà completato in futuro. La sintassi della promessa è riportata di seguito:

Sintassi promettente:

let myPromise = new Promise (function (risolve, rifiuta)
// codice
);

Come possiamo vedere dalla sintassi di promessa sopra offerti, il costruttore promettente prende solo la funzione di callback come argomento. Nella funzione di callback, abbiamo gli argomenti risoluti e rifiutano in cui la risoluzione viene chiamata quando le operazioni eseguite all'interno della funzione di callback hanno esito positivo. Tuttavia, se l'operazione non ha successo, chiama il rifiuto.

Per dircelo semplicemente supponiamo che il tuo compleanno stia arrivando e tua madre ti promette di darti un nuovo laptop. Non hai ricevuto il laptop e non puoi essere davvero sicuro se otterrai il laptop o no fino al tuo compleanno. Tua madre potrebbe comprarti un laptop o può cambiare idea e comprarti qualcos'altro. Questa è una promessa nel linguaggio laico.

Ogni promessa ha tre stati o possibilità:

  • In sospeso: non sei sicuro se otterrai il laptop o no; non definito.
  • Realizzato: tua madre ti compra il laptop; Valore dei risultati.
  • Rifiuta: tua madre non ti compra un laptop; Oggetto di errore.

Vantaggi delle promesse

  • Le operazioni asincrone sono gestite in modo più semplice
  • La leggibilità del codice è migliorata, quindi il debug diventa facile
  • La gestione degli errori è più semplice degli eventi o dei callback.
  • Il flusso di controllo è meglio definito dal codice asincrono.

Prima di andare agli esempi di promessa, esaminiamo un altro concetto all'interno delle promesse che sono promettenti consumatori la cui funzione è consumare promesse registrando funzioni usando:

  • .Quindi (): quando una promessa viene risolta o rifiutata, questo metodo viene chiamato.
  • .catch (): quando una promessa viene respinta o si verifica un errore durante l'esecuzione della promessa, questo metodo viene chiamato.

Esempio:

In questo esempio, verificheremo se due numeri sono uguali o meno utilizzando le promesse e in base al fatto che questa operazione abbia esito positivo o meno, mostreremo l'output.

// Prometti l'inizializzazione
// Prometti l'inizializzazione
VarmyPromise = newPromise (function (Resolve, Reject)
const num1 = 4;
const num2 = 4;
// Confronta due numeri
if (num1 === num2)
// Quando il funzionamento ha esito positivo
risolvere();
altro
// Quando arriva l'errore
rifiutare();

);
// Promessa i consumatori
mia promessa.
Quindi (function ()
console.log ("operazione riuscita");
).
catch (function ()
console.log ("errore si è verificato");
);
  • Abbiamo inizializzato la promessa con il nome MyPromise e fornito una funzione di callback.
  • Nella funzione, abbiamo creato i due numeri che vogliamo confrontare
  • Abbiamo usato l'istruzione IF-Else per vedere se i numeri sono uguali o no
  • E poi abbiamo incluso i consumatori della promessa
  • Se l'operazione promettente ha esito positivo, allora .quindi il consumatore verrà invocato e la console mostrerà il successo
  • Se una promessa non ha esito positivo, vedrai un messaggio che dice che "si è verificato un errore" sulla console

Poiché l'operazione ha avuto successo, vediamo Operazione riuscita nel registro della console.

Cambiamo ora i numeri inizializzati nella funzione call-back per vedere se la funzione di cattura rileva un errore o no.

// Prometti l'inizializzazione
VarmyPromise = newPromise (function (Resolve, Reject)
const num1 = 5;
const num2 = 4;
// Confronta due numeri
if (num1 === num2)
// Quando il funzionamento ha esito positivo
risolvere();
altro
// Quando arriva l'errore
rifiutare();

);
// Promessa i consumatori
mia promessa.
Quindi (function ()
console.log ("operazione riuscita");
).
catch (function ()
console.log ("errore si è verificato");
);

Poiché i numeri non sono uguali ora, la funzione di rifiuto () verrà invocata e l'errore verrà memorizzato nella cache della funzione Catch:

Conclusione

Una promessa è un'operazione completata in futuro e aiuta gli sviluppatori a implementare il codice asincrono. Le promesse sono preferite rispetto alle funzioni di callback poiché le promesse sono molto più pulite, quindi migliorando la leggibilità e il debug del codice, ha una migliore gestione degli errori e più operazioni asincroni sono meglio gestite con le promesse. Una promessa può essere mantenuta, rifiutata o in sospeso.

In questo post, abbiamo subito promesse in JavaScript e abbiamo spiegato le promesse con l'aiuto di un esempio.