JavaScript søvnfunksjon

JavaScript søvnfunksjon

JavaScript er språket for frihet, men er et funksjonsorientert språk samtidig. I motsetning til andre språk, gir ikke JavaScript en innebygd søvn () -funksjon. Du kan enten bygge en tilpasset søvn () -funksjon ved hjelp av den innebygde setTimeout () -funksjonen, eller det nyeste ECMASCRIPT lover en async-adait-funksjon. Denne artikkelen viser deg hvordan du kan stoppe eller pause utførelsen av søvnfunksjonen i ønsket tid ved hjelp av løfter eller async-beisfunksjoner.

Før start

Før du begynner å bygge en søvnfunksjon, må du forstå at Settimeout () -funksjonen ikke fungerer hvis du forventer at den skal stoppe utførelsen. Mange programmerere og utviklere prøver å bruke funksjonen med løkker, men mislykkes fordi Settimeout () -funksjonen brukes til å vente på noen gitt tid og deretter kjører den gitte funksjonen. Du kan imidlertid bruke Settimeout () -funksjonen for å bygge en søvnfunksjon ved å bruke løfte hvis formålet ditt er å stoppe utførelsen i ønsket tid.

Bruke søvnfunksjonen

Så vi vil lage en tilpasset søvnfunksjon der funksjonen vil få tid i millisekunder som et argument og returnere et løfte. Løftet vil omfatte en Settimeout () -funksjon, som vil passere resolveren som en funksjon og tid i millisekunder til Settimeout () -funksjonen. Så til slutt skal søvnfunksjonen se slik ut:

funksjon Sleep (MS)
Return New Promise (Resolver => Settimeout (Resolver, MS));
;

Og nå, uansett hvor du vil bruke denne søvnfunksjonen, kan du enkelt bruke den.

Nå vil vi bruke denne søvnfunksjonen i et par eksempler for å vise deg hvordan du bruker den i praksis.

Først vil vi prøve å trøste litt tekst og ringe søvnfunksjonen. Siden søvnfunksjonen gir et løfte, setter vi en daværende funksjon etter den, der vi vil trøste litt tekst og sende argumentet '5000' til søvnfunksjonen. Etter å ha kjørt programmet, vil du se i konsollen at det vil sove i 5 sekunder.

konsoll.Logg ("Søvnfunksjonen vil vente i 10 sekunder, og så skriver den ut 'gjort'");
søvn (5000).da (() =>
konsoll.Logg ("Ferdig");
)

Du kan være vitne til forsinkelsen på 5 sekunder for å komme til "Done" -statusen i konsollen.

Anta at vi vil utføre en animasjon etter hvert 2. sekund. For å gjøre det, vil vi ganske enkelt skrive en asynkron animasjonsfunksjon, der vi vil animere noe, stoppe utførelsen i 2 sekunder ved hjelp av søvn, og deretter gjenta denne prosessen ved hjelp av en for loop i 10 ganger.

async funksjon animasjon (ms)
konsoll.Logg ("Start ...");
for (la i = 0; i < 10; i++)
konsoll.Logg ("Animasjon etter 2 sekunder ...")
Venter søvn (MS)

konsoll.Logg ("Dette er slutten.");

Etter å ha skrevet den asynkrone animasjonsfunksjonen, kan vi nå kalle animasjonsfunksjonen.

Animasjon (2000);

Etter å ha kjørt koden, vil du se i konsollen at teksten "animasjon etter 2 sekunder" gjentar hvert annet sekund.

Konklusjon

Denne artikkelen viste deg hvordan du lager en tilpasset søvnfunksjon, sammen med flere demonstrasjoner. Jeg håper denne artikkelen har hjulpet deg til å forstå bruken av søvnfunksjon bedre. Du kan lære mer om JavaScript på Linuxhint.com.