Javascript er frihedens sprog, men alligevel et funktionsorienteret sprog på samme tid. I modsætning til andre sprog giver javascript ikke en indbygget søvnfunktion (). Du kan enten oprette en brugerdefineret sleep () -funktion ved hjælp af den indbyggede setTimeout () -funktion, eller det nyeste ECMAScript lover en async-wait-funktion. Denne artikel viser dig, hvordan du stopper eller stopper udførelsen af søvnfunktionen i et ønsket tidsrum ved hjælp af løfter eller asynkroniserede funktioner.
Inden du starter
Før du begynder at opbygge en dvalefunktion, skal du forstå, at funktionen setTimeout () ikke fungerer, hvis du forventer, at den stopper udførelsen. Mange programmerere og udviklere forsøger at bruge funktionen med sløjfer, men mislykkes, fordi funktionen setTimeout () bruges til at vente på en vis tid og kører derefter den givne funktion. Du kan dog bruge funktionen setTimeout () til at opbygge en søvnfunktion ved hjælp af løfte, hvis dit formål er at stoppe udførelsen i en ønsket periode.
Brug af søvnfunktionen
Så vi laver en brugerdefineret søvnfunktion, hvor funktionen får tid i millisekunder som et argument og returnerer et løfte. Løftet inkluderer en setTimeout () -funktion, som overfører resolveren som en funktion og tid i millisekunder til funktionen setTimeout (). Så i sidste ende skal søvnfunktionen se sådan ud:
funktion søvn (ms)returner nyt løfte (resolver => setTimeout (resolver, ms));
;
Og nu, uanset hvor du vil bruge denne søvnfunktion, kan du nemt bruge den.
Nu bruger vi denne søvnfunktion i et par eksempler for at vise dig, hvordan du bruger den i praksis.
Først vil vi forsøge at konsolere lidt tekst og kalde dvalefunktionen. Da søvnfunktionen returnerer et løfte, sætter vi en daværende funktion efter den, hvor vi konsolerer noget tekst og sender argumentet '5000' til søvnfunktionen. Efter at have kørt programmet, vil du se i konsollen, at det vil sove i 5 sekunder.
konsol.log ("Dvalefunktion venter i 10 sekunder og derefter udskriver den" Udført "");sove (5000).derefter (() =>
konsol.log ("Udført");
)
Du kan se forsinkelsen på 5 sekunder for at komme til "Udført" status i konsollen.
Antag, at vi vil udføre en animation efter hvert 2. sekund. For at gøre det skriver vi simpelthen en asynkron animationsfunktion, hvor vi vil animere noget, stoppe udførelsen i 2 sekunder ved hjælp af dvaletilstand og derefter gentage denne proces ved hjælp af en for-sløjfe i 10 gange.
asynkroniseringsfunktionsanimation (ms)konsol.log ("starter ...");
for (lad i = 0; i < 10; i++)
konsol.log ("animation efter 2 sekunder ...")
afventer søvn (ms)
konsol.log ("Dette er slutningen.");
Efter at have skrevet den asynkrone animationsfunktion, kan vi nu kalde animationsfunktionen.
animation (2000);Efter kørsel af koden vil du se i konsollen, at teksten "animation efter 2 sekunder" gentages hvert andet sekund.
Konklusion
Denne artikel viste dig, hvordan du laver en brugerdefineret søvnfunktion sammen med flere demonstrationer. Jeg håber, at denne artikel har hjulpet dig til bedre at forstå brugen af søvnfunktion. Du kan lære mere om Javascript på linuxhint.com.