Hvordan kjede løfter i JavaScript

Hvordan kjede løfter i JavaScript
JavaScript Promise -objekt brukes til å håndtere asynkrone funksjoner. Det representerer tilstanden og dataene som returneres av den spesifiserte funksjonen. Løftobjektets tilstand kan hjelpe deg med å avgjøre om den ekstra asynkrone funksjonen er fullført, avvist eller fremdeles er i påvente av.

I JavaScript er løfter lenket sammen for å håndtere utførelsesstrømmen i et program. Chaining Promises er også nyttig når du må utføre en serie asynkrone funksjoner, der hver er avhengig av den tidligere funksjonen. Det inkluderer også feilutbredelse.

Denne oppskrivningen vil diskutere prosedyren for Kjede løfter i JavaScript ved hjelp av passende eksempler. Så la oss starte!

Hvordan lage et løfte i JavaScript

Du kan bruke “Love()”Konstruktør for å lage et Promise -objekt i programmet ditt:

La løfte = nytt løfte (funksjon (Løs, avvise)
// Body of the Function
)

I JavaScript, "Love()”Konstruktør godtar en“funksjon()”Som et argument som videre har to argumenter:“Løse()”Og“avvis ()“. Resolve () -funksjonen vil bli påberopt hvis løftet blir returnert med hell; Ellers vil avslaget () -funksjonen bli kalt.

Eksempel: Hvordan lage et løfte i JavaScript
I det undergitte programmet vil vi lage et Promise-objekt som heter “NumberValue”Ved å bruke løftet () konstruktøren. I følge den gitte syntaks har vi lagt til parametrene “Løse()”Og“avvis ()”For vårt løfteobjekt:

const nummer = sant;
La NumberValue = Nytt løfte (funksjon (Løs, avvis)
if (nummer)
Resolve ("Vi har et tall");
annet
Avvis ("Vi har ikke noe tall");

);

Verdien av “Antall" er satt til "ekte”Så i dette tilfellet vil løftet bli løst:

konsoll.Logg (NumberValue);

Utførelse av det medfølgende programmet vil returnere Promise -objektet med staten:

Hvordan kjede løfter i JavaScript

Hvis du sitter fast i en situasjon der du trenger å utføre flere asynkrone oppgaver i en sekvens, kan Promise Chaining hjelpe deg i denne forbindelse.

Med Promise Chaining kan du spesifisere operasjonene etter at det aktuelle løftet er løst. For dette formålet, JavaScript “deretter()”,“å fange()”, Og“endelig()”Metoder brukes.

Hvordan kjede løfter i JavaScript ved hjelp av da () -metoden

JavaScript “deretter()”Metode brukes for å legge til håndterfunksjonen til det opprettede Promise -objektet. Denne metoden omfatter “onfulfilled”Og“onrejected”Parametere, slik at du kan håndtere scenariene der løfter er oppfylt eller mislykket.

Syntaks av JavaScript Then () Metode

PromiseObject.Deretter (påmeldt, onrejisert);

Her “onfulfilled”Og“onrejected”Er argumentet om“deretter()”Metode. Denne metoden vil returnere et løfteobjekt med resultatet av behandlerfunksjonen.

Eksempel: Hvordan kjede løfter i JavaScript ved hjelp av da () -metoden
Først av alt vil vi lage et Promise -objekt som heter “NumberValue”Ved hjelp av løftet () konstruktør:

La NumberValue = Nytt løfte (funksjon (Løs, avvis)
const produkt = 2;
Løs (produkt);
);

Etter det vil vi bruke “deretter()”Metode for å lenke funksjonene”SuccessValue ()”Og“SuccessValue1 ()”, Og“SuccessValue2 ()" med "produkt" som "onfulfilled”Argument til løftet:

NumberValue
.deretter (funksjon suksessvalue (produkt)
konsoll.logg (produkt);
Returprodukt * 2;
)
.da (funksjon suksessvalue1 (produkt)
konsoll.logg (produkt);
returprodukt * 4;
)
.deretter (funksjon suksessvalue2 (produkt)
konsoll.logg (produkt);
Returprodukt * 6;
);

Den ekstra kjeden av da () -metodene vil bli utført når det spesifiserte løftet er oppfylt:

Hvordan kjede løfter i JavaScript ved hjelp av Catch () -metoden

JavaScript “å fange()”Metode håndterer de avviste løftene eller saken når en feil oppstår. Det anses som en god praksis å avvise et løfte i stedet for å generere en feil eksplisitt.

Eksempel: Hvordan kjede løfter i JavaScript ved hjelp av Catch () -metode
Nå vil vi prøve å legge til en fangst () -metode i forrige eksempel:

La NumberValue = Nytt løfte (funksjon (Løs, avvis)
Avvis ('Dessverre blir løftet avvist');
);
NumberValue.deretter(
FunksjonssuksessValue (Resultat)
konsoll.logg (resultat);
,
)

Det undergitte “å fange()”Metoden vil bli utført hvis det oppstår noen feil:

.å fange(
funksjon errorValue (resultat)
konsoll.logg (resultat);

);

Som du kan se fra utgangen at “NumberValue”Løftet blir avvist, og”å fange()”Metoden brukes deretter for å håndtere feilen:

Hvordan du bruker endelig () metode med løfter

endelig()”Metoden brukes i en situasjon der du må utføre en viss kode uavhengig av om det ekstra løftet er oppfylt eller ikke.

Eksempel: Hvordan bruke endelig () metode med løfter
Vi har lagt til JavaScript “endelig()”I det følgende eksemplet som vil kjøre enten blir løftet avvist eller oppfylt:

La NumberValue = Nytt løfte (funksjon (Løs, avvis)
Resolve ('løfte er løst');
);
NumberValue.endelig(
funksjon msg ()
konsoll.logg ('kode utføres vellykket');

);

Den ovennevnte utgangen betyr at koden lagt til i "endelig()”Metoden utføres vellykket, og løftet blir løst.

Konklusjon

Ved hjelp av deretter() og å fange() Metoder, du kan kjede løfter i JavaScript. Den da () -metoden brukes til å spesifisere operasjonen som må gjøres når det ekstra løftet er oppfylt, mens fangst () -metoden håndterer saken når løftet blir avvist. Denne oppskrivningen diskuterte prosedyren for å kjede løfter i JavaScript ved bruk av daværende () og fangst () -metoder.