Cos'è un oggetto promettente in JavaScript

Cos'è un oggetto promettente in JavaScript

In JavaScript gli oggetti Promise vengono utilizzati per lavorare con le operazioni asincrone. Il concetto di promessa può sembrare complicato all'inizio, ma in realtà sono abbastanza semplici; Possiamo comprendere le promesse di JavaScript confrontandole con le promesse del mondo reale usando i termini di Layman.

Nella vita di tutti i giorni facciamo promesse per mostrare il nostro impegno. Allo stesso modo in JavaScript facciamo un oggetto Promise quando dobbiamo impegnarci a eseguire un blocco di codice.

Ad esempio, quando inviamo una richiesta per recuperare i dati da un'API tramite il nostro codice, l'API richiede tempo per rispondere. Nel frattempo l'interprete JavaScript si sposta sul blocco successivo di codice, ma vogliamo eseguire un pezzo di codice dopo l'adempimento o il rifiuto della risposta. Ora, se utilizziamo l'oggetto Promise, possiamo eseguire la linea di codici desiderata in seguito all'adempimento o al rifiuto della risposta API.

Gli oggetti Promise JavaScript possono avere tre stati diversi i.E:

  • In attesa di
  • Soddisfatto
  • Respinto

La promessa è in sospeso quando il risultato dell'oggetto promettente non è definito; è soddisfatto quando il risultato ha un valore e rifiutato quando il risultato è un errore. Ad esempio, nell'esempio di cui sopra se abbiamo inviato la richiesta all'API e siamo in attesa dei dati, la promessa è in sospeso. Se l'API invia correttamente i dati, la promessa è mantenuta e se il codice non può connettersi con l'API, la promessa è stata respinta.

Cosa sono promesse in JavaScript

Come accennato in precedenza, le operazioni asincrone in JavaScript vengono gestite attraverso le promesse. JavaScript asincrono si riferisce principalmente alle funzioni in esecuzione in parallelo con il programma principale.

Negli eventi JavaScript e le funzioni di callback sono stati utilizzati per gestire le operazioni asincroni prima delle promesse. Le promesse sono state aggiunte nella versione ES6 di JavaScript nel 2015. Sebbene le funzioni e gli eventi di callback fossero utili, avevano ancora i loro limiti. Il callback Hell è stato il più grande svantaggio dell'utilizzo delle funzioni di callback.

Le promesse sono perfette per la gestione delle operazioni asincroni in quanto possono gestire diverse operazioni asincroni e sono molto migliori nella gestione degli errori rispetto a eventi e callback.

Come le promesse funzionano in javascript

Le funzioni asincroni sono funzioni che corrono parallele al programma principale. Queste funzioni funzionano separatamente dal programma principale e avvisano il thread chiamante del loro successo, fallimento o progresso.

L'oggetto promettente in JavaScript ha uno dei tre stati:

  • In attesa: è lo stato dell'oggetto promettente tra la sua inizializzazione e il suo completamento.
  • soddisfatto/risolto: è lo stato che indica che il funzionamento dell'oggetto promettente ha avuto successo.
  • Rifiutato: è lo stato che indica che il funzionamento dell'oggetto promettente non ha avuto successo.

Creazione di un semplice oggetto Promise in JavaScript

Qui impareremo a creare un oggetto Promise in pochi semplici passaggi:

  1. In JavaScript viene creato un oggetto Promise usando un costruttore "new Promise ()". Questo costruttore prende una funzione richiamata con due argomenti come argomento.
  2. Il codice richiesto per eseguire l'attività promessa è scritto nel corpo della funzione di richiamata.
  3. Se l'attività viene eseguita con successo, la promessa viene risolta/mantenuta; Altrimenti la promessa è respinta/insoddisfatta.
  4. Esistono due metodi associati all'oggetto promettente, al metodo allora () e catch (). Questi metodi vengono (rispettivamente) chiamati se la promessa viene risolta o rifiutata.

Nota: La console del browser viene utilizzata per la dimostrazione di esempi in questo articolo.

Le promesse JavaScript vengono create utilizzando il nuovo Promise () costruttore:

const mypromise = new Promise ();

La nuova promessa richiede due parametri diversi. Uno di questi parametri è per il successo (nel caso in cui la promessa è risolta) e l'altro è per fallimento (nel caso in cui la promessa viene rifiutata):

const myPromise = new Promise ((Resolve, Reject) =>
// condizione // condizione
);

Infine, definiamo il corpo dell'oggetto promettente. Gli diamo una condizione che verrà soddisfatta solo se la promessa viene risolta:

const myPromise = new Promise ((Resolve, Reject) =>
let condition = true;
if (condizione)
Resolve ("Promise è risolta.');
altro
rifiuto ('Promise viene rifiutata.');

);

Ora impariamo a usare il nostro oggetto Promise appena creato. Ci possono essere solo due diversi risultati finali per un oggetto promettente; Può essere una promessa risolta o rifiutata.

allora () metodo : Il metodo allora () definisce cosa accadrà dopo se una promessa viene risolta.

mia promessa.Poi();

In questo esempio stiamo usando il metodo allora () per registrare un messaggio (che abbiamo ricevuto dalla promessa) alla console.

mia promessa.Quindi ((messaggio) =>
console.registro (messaggio);
);

Metodo catch () : Allo stesso modo, il metodo Catch () definisce cosa accadrà dopo se una promessa fallisce.

mia promessa.Quindi ((messaggio) =>
console.registro (messaggio);
).catch ((message) =>
console.registro (messaggio);
);

Può essere scritto in due modi diversi; separatamente o in combinazione con il metodo allora (). Nel caso in cui la promessa non sia mantenuta, eseguirà il metodo Catch () e questa volta verrà mostrato un messaggio diverso sulla console.

Conclusione

Le promesse in JavaScript sono oggetti che vengono utilizzati come alternativa di funzioni ed eventi di callback durante la gestione delle operazioni asincroni in JavaScript. Le promesse possono avere tre stati diversi i.e. in sospeso, realizzato o insoddisfatto. Nello stato in sospeso l'oggetto promettente è in attesa del valore, quindi non ha valore. Nello stato soddisfatto ha il valore risolto e nello stato insoddisfatto ha il motivo per cui la promessa non è stata risolta. Questo post era una guida approfondita sugli oggetti promettenti in JavaScript.