Hva er et Promise -objekt i JavaScript

Hva er et Promise -objekt i JavaScript

I JavaScript brukes Promise -objektene til å jobbe med de asynkrone operasjonene. Begrepet løfte kan høres komplisert ut med det første, men i virkeligheten er de ganske enkle; Vi kan forstå JavaScript -løfter ved å sammenligne dem med løfter fra den virkelige verden ved å bruke lekmannsbetingelser.

I hverdagen gir vi løfter om å vise vårt engasjement. Tilsvarende i JavaScript lager vi et Promise -objekt når vi må være forpliktet til å utføre en kodeblokk.

Når vi for eksempel sender en forespørsel om å hente data fra et API gjennom koden vår, tar API tid å svare. I mellomtiden beveger JavaScript -tolken seg til neste kodeblokk, men vi ønsker å utføre noe kodestykke etter oppfyllelsen eller avvisning av responsen. Nå, hvis vi bruker Promise -objektet, kan vi utføre den ønskede kodelinjen ved oppfyllelse eller avvisning av API -responsen.

JavaScript Promise -objektene kan ha tre forskjellige stater i.e:

  • Avventer
  • Oppfylt
  • Avvist

Løftet er i verserende tilstand når resultatet av Promise -objektet er udefinert; Det blir oppfylt når resultatet har en verdi og avvist når resultatet er en feil. For eksempel, i eksemplet ovenfor, hvis vi har sendt forespørselen til API og venter på dataene, er løftet i ventende tilstand. Hvis API sender dataene, blir løftet oppfylt, og hvis koden ikke kan koble til API -en, er løftet blitt avvist.

Hva er løfter i JavaScript

Som nevnt ovenfor, blir asynkrone operasjoner i JavaScript håndtert gjennom løfter. Asynkron JavaScript refererer hovedsakelig til funksjonene som kjører parallelt med hovedprogrammet.

I JavaScript -hendelser og tilbakeringingsfunksjoner ble brukt til å håndtere asynkron drift før løfter. Løfter ble lagt til i ES6 -versjonen av JavaScript i 2015. Selv om tilbakeringingsfunksjoner og hendelser var nyttige, hadde de fortsatt sine begrensninger. Tilbakeringing helvete var den største ulempen med bruken av tilbakeringingsfunksjoner.

Løfter er perfekte for håndtering av asynkrone operasjoner, da de kan håndtere flere asynkrone operasjoner og er mye flinkere til å håndtere feil enn hendelser og tilbakeringinger.

Hvordan løfter fungerer i JavaScript

Asynkrone funksjoner er funksjoner som kjører parallelt med hovedprogrammet. Disse funksjonene fungerer separat fra hovedprogrammet og varsler den anropende tråden om deres suksess, fiasko eller fremgang.

Promise -objektet i JavaScript har en av tre stater:

  • Venter: Det er lovens tilstand mellom initialiseringen og fullføringen.
  • oppfylt/løst: det er staten som indikerer at driften av løftobjektet var vellykket.
  • Avvist: Det er staten som indikerer at driften av Promise -objektet var mislykket.

Opprette et enkelt løfteobjekt i JavaScript

Her vil vi lære å lage et Promise -objekt i bare noen få enkle trinn:

  1. I JavaScript opprettes et Promise -objekt ved hjelp av en konstruktør “Nytt løfte ()”. Denne konstruktøren tar en tilbakekallingsfunksjon med to argumenter som et argument.
  2. Koden som kreves for å utføre den lovede oppgaven er skrevet i kroppen av tilbakekallingsfunksjonen.
  3. Hvis oppgaven blir utført, blir løftet løst/oppfylt; Ellers blir løftet avvist/uoppfylt.
  4. Det er to metoder assosiert med Promise -objektet, da () og fangst () -metoden. Disse metodene kalles (henholdsvis) hvis løftet blir løst eller avvist.

Merk: Nettleserkonsollen brukes til demonstrasjon av eksempler i denne artikkelen.

JavaScript -løfter skapes ved å bruke det nye Promise () Konstruktør:

const mypromise = new Promise ();

Det nye løftet tar to forskjellige parametere. En av disse parametrene er for suksess (incase løftet er løst) og den andre er for å mislykkes (incase løftet blir avvist):

const mypromise = new Promise ((Løs, avvis) =>
// tilstand // tilstand
);

Til slutt definerer vi kroppen til Promise -objektet. Vi gir den en tilstand som bare vil bli oppfylt hvis løftet er løst:

const mypromise = new Promise ((Løs, avvis) =>
La tilstand = sant;
if (tilstand)
Løs ('løftet løses.');
annet
Avvis ('løfte blir avvist.');

);

La oss nå lære å bruke vårt nyopprettede Promise -objekt. Det kan bare være to forskjellige sluttresultater for et løfteobjekt; Det kan enten være et løst eller et avvist løfte.

da () metode : DEN () -metoden definerer hva som vil skje videre hvis et løfte blir løst.

MyPromise.deretter();

I dette eksemplet bruker vi da () -metoden for å logge en melding (som vi fikk fra løftet) til konsollen.

MyPromise.da ((melding) =>
konsoll.logg (melding);
);

Catch () Metode : Tilsvarende definerer metoden for fangst () hva som vil skje videre hvis et løfte mislykkes.

MyPromise.da ((melding) =>
konsoll.logg (melding);
).fange ((melding) =>
konsoll.logg (melding);
);

Det kan skrives på to forskjellige måter; separat eller i kombinasjon med da () -metoden. I tilfelle løftet er uoppfylt, vil det utføre fangstmetoden (), og denne gangen vises en annen melding på konsollen.

Konklusjon

Løfter i JavaScript er objekter som brukes som et alternativ til tilbakeringingsfunksjoner og hendelser når du håndterer asynkrone operasjoner i JavaScript. Løfter kan ha tre forskjellige stater jeg.e. i påvente, oppfylt eller uoppfylt. I den ventende tilstanden venter løftobjektet på verdien dermed har det ingen verdi. I oppfylt tilstand har den den løste verdien og i uoppfylt tilstand har det grunnen til at løftet ikke ble løst. Dette innlegget var en grundig guide om Promise -objekter i JavaScript.