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:
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:
Opprette et enkelt løfteobjekt i JavaScript
Her vil vi lære å lage et Promise -objekt i bare noen få enkle trinn:
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) =>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 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) =>Catch () Metode : Tilsvarende definerer metoden for fangst () hva som vil skje videre hvis et løfte mislykkes.
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.