Hvordan vente på at løfter blir løst i JavaScript

Hvordan vente på at løfter blir løst i JavaScript

Løfter er mye brukte funksjoner i Javascript -programmeringsspråket. Løfter har en nøkkelrolle i JavaScript for å vente til utførelsen av spesifikke oppgaver er fullført. Det lar brukeren utføre neste oppgave etter å ha fullført en oppgave. Dette innlegget demonstrerer løftet om å vente ved å bruke Løse() Metode i JavaScript. Det er nyttig for tilbakeringingsfunksjoner som utfører et stykke kode basert på brukerbehov. Dessuten kan den administrere flytkontrollen av asynkrone hendelser, der parallelle hendelser kalles.

Hvorfor det kreves løfter i JavaScript?

JavaScript kan utføre en oppgave på et gitt tidspunkt på en sekvensiell måte. Imidlertid forårsaker koden parallelt noen problemer. For eksempel, hvis en bruker setter 5 sekunder for setTimeout () Metode, JavaScript vil utføre den neste delen av koden før du fullfører forrige oppgave. Derfor kreves løfter å vente til den nåværende oppgaven blir utført.

Arbeid av løfter i JavaScript

Et løfte er et JavaScript-basert objekt som returnerer en verdi etter å ha fullført eller fullført en asynkron oppgave. Den fullførte oppgaven refererer til løsningen for løsningsfunksjonen, mens den ufullstendige oppgaven indikerer avslagsfunksjonen samtale. Syntaksen er her ved å vurdere løftet med løsningsfunksjonssamtalen.

Syntaks

Love.Løs (verdi);

Syntaksen returnerer et løfte "gjenstand" som løser bortgangen verdi.

Ulike løftetilstander i JavaScript

Løftet skapes ved å bruke konstruktøren. Et løfte er et objekt som inneholder tre former, "oppfylt", “Avvist”, og "Avventer" og er beskrevet nedenfor:

  • oppfylt: refererer til løftet som blir løst.
  • avvist: indikerer at løftet er blitt avvist.
  • Avventer: Spesifiser den opprinnelige tilstanden før løftet blir avvist eller løst.

Merk: Løftet brukes mest til asynkrone operasjoner. Men brukere kan avvise eller løse operasjonen ved å synkronisere.

La oss øve på forskjellige eksempler anses å vente på løftet med forskjellige tidsperioder.

Eksempel 1: Venter i 3 sekunder

Et eksempel blir fulgt av å bruke løftet om å vente på 3000 millisekunder i JavaScript.

Kode

konsoll.logg ('eksempel for å vente på at løfter blir løst');
const p1 = nytt løfte ((Løs, avvis) =>
setTimeout (() =>
konsoll.logg ('første løfte løst');
, 3000);
);

I denne koden:

  • For det første "Love" Konstruktør kalles av en ny nøkkelord.
  • Etter det, tilbakeringing a setTimeout () Metode ved å passere en streng “Første løfte løst” og “3000” millisekunder.
  • Derfor venter den forbipasserende strengen 3 sekunder med å løse løftet i JavaScript.

Produksjon

Utgangen viser at en melding “Første løfte løst” vises etter 3 sekunder.

Eksempel 2: Bruke "async" og "venter" nøkkelord for å vente på et løfte

Et annet eksempel vurderes ved å bruke async og avvente Nøkkelord å vente på løfter i JavaScript. Koden er gitt nedenfor.

Kode

konsoll.logg ('Lover å bli løst');
async funksjonsinfo ()
const Promise = Nytt løfte (Løs =>
Resolve ('Velkommen til JavaScript'));
const txt = avventer løfte;
konsoll.logg (txt);
return txt;
info ()

I denne koden:

  • For det første funksjon info () er ansatt i “Asynk” nøkkelord som returnerer løftet.
  • Etter det, "Love" Konstruktør kalles med en ny nøkkelord og en tilbakeringing til “Løse()" metode.
  • En melding “Velkommen til JavaScript” sendes som et argument for å løse metoden.
  • De “Asynk” Nøkkelord er tillatt med "avvente" nøkkelord.
  • De avvente nøkkelord brukes til å vente på løfter og lagre dem i "tekst" variabel.
  • Til slutt, den info () metoden kalles for å returnere "tekst" variabel.

Produksjon

Utgangen returnerer en melding “Velkommen til JavaScript” ved å bruke løstmetoden for løft.

Eksempel 3: Vent i 2 sekunder med "async" og "vent" nøkkelord

Følgende kode føres til å vente på at løfter blir løst ved hjelp av async og avvente nøkkelord.

konsoll.logg ('Lover å bli løst');
async funksjon wait_tim ()
La P2 = avvente løfte;
konsoll.Log (P2);

La løfte = nytt løfte (Løs =>
setTimeout (() => Resolve ('JavaScript'), 2000);
);
wait_tim ();

Forklaringen på koden er som følger:

  • For det første wait_tim () Metoden er definert med “Asynk” nøkkelord som returnerer løftet.
  • Videre avvente nøkkelord er ansatt for å vente på et løfte og lagre det i "tekst" variabel.
  • Etter det, "Love" Konstruktør kalles med en ny nøkkelord som kaller tilbake en Løse metode.
  • I denne metoden, setTimeout () Metoden brukes ved å passere en streng “JavaScript” og “2000” millisekunder.
  • Til slutt, den “Wait_tim ()” Metoden kalles for å vente “2 sekunder” For å løse løftet.

Produksjon

Utgangen viser at en melding “JavaScript” venter i 2 sekunder før du skriver ut på konsollen.

Konklusjon

JavaScript gir en Love.Løse() Metode for å vente på løfter og returnerer et løfteobjekt som løses ved å gi en gitt verdi. Denne artikkelen forklarer arbeidet med et Promise -objekt sammen med syntaks. Metoden er nyttig for å kontrollere strømmen av asynkrone hendelser, der parallelle hendelser kalles. Dessuten er det gitt mange eksempler for å vente på løftet ved å bruke setTimeout () metode.