JavaScript Promise.Race Method

JavaScript Promise.Race Method
Love.Race () Metode er en innebygd metode for JavaScript som tar en iterable av løfter som et argument og returnerer det første løftet som blir løst eller avvist. Løftet.Race () -metoden vil enten returnere oppfyllingsverdien eller årsaken til avvisning. Iterables er objekter som kan sløyfes gjennom matriser, strenger og kart.

Hva er løfter uansett?

Asynkron kode kan håndteres løfter. De tar en funksjon kjent som Executor som en parameter. Når det opprettes et løfte, kjører eksekutoren automatisk asynkront og returnerer en verdi i tilfelle den blir oppfylt ellers returnerer den grunnen til avvisning:

La eksempel_promise = newPromise ((Løs, avvis) =>
Resolve ("Promise er løst");
);
EKSEMPEL_PROMISE.da (r => konsoll.log (r));

Asynkron natur av løfter:

La eksempel_promise = newPromise ((Løs, avvis) =>
Resolve ("Promise er løst");
);
EKSEMPEL_PROMISE.da (r => konsoll.log (r));
konsoll.log ("1,2,3 ...");

Hvordan bruke løfte.Race () Metode?

Gi en iterable av løfter til løftet.Race () Metode og få sin returverdi i variabel:

La prom1 = newPromise ((Løs, avvis) =>
setTimeout (() => Resolve ("Promise er løst"), 500);
);
La prom2 = newPromise ((Løs, avvis) =>
setTimeout (() => avvis ("løfte kunne ikke løses"), 250);
);
La temp = løfte.Race ([Prom1, Prom2]);
temp.fangst (grunn => konsoll.logg (grunn));

I dette eksemplet hadde vi to løfter. Det første løftet ble løst etter 500 ms og det andre løftet ble avvist like etter 250 sekunder. Ettersom det andre løftet var det første som ble løst eller avvist, ble det returnert av løftet.Race () Metode.

Hvis argumentet gikk til løftet.Race () Metode er en tom iterable, da vil metoden gi et evigløft for alltid i påvente:

La temp = løfte.løp([]);
konsoll.logg (temp);

Hvis argumentet er iterable har noen ikke-fremmede verdier eller løfter som allerede er oppfylt eller avvist, vil metoden nøye seg med den første verdien i matrisen:

La P1 = NewPromise ((Løs, avvis) =>
Resolve ("P1 er løst");
);
La P2 = NewPromise ((Løs, avvis) =>
Resolve ("P2 er løst");
);
La temp = løfte.rase ([P1, P2]);
temp.da (verdi => konsoll.logg (verdi));

Love.Race () Metode Sjekk for både løste og avviste løfter. Denne metoden har også et annet alternativ som er løftet.hvilken som helst () metode som kan brukes til å bare sjekke for de oppfylte løftene.

Konklusjon

Love.Race () Metode brukes for å få det første løftet som enten er oppfylt eller avvist fra en iterable av løfter. Løftet som er oppfylt eller avvist det tidligste er lovens returverdi.løp(). Oppskrivningen ga en grundig innsikt i løftet.Race () Metode.