JavaScript

JavaScript Sleep-funktion

JavaScript Sleep-funktion

Javascript är frihetens språk men är samtidigt ett funktionsorienterat språk. Till skillnad från andra språk har javascript inte en inbyggd sömn () -funktion. Du kan antingen bygga en anpassad sleep () -funktion med den inbyggda setTimeout () -funktionen, eller så lovar det senaste ECMAScript en async-await-funktion. Den här artikeln visar hur du kan stoppa eller pausa körningen av sömnfunktionen under önskad tid med löften eller asynk-väntande funktioner.

Innan du startar

Innan du börjar bygga en sömnfunktion måste du förstå att funktionen setTimeout () inte fungerar om du förväntar dig att den ska stoppa körningen. Många programmerare och utvecklare försöker använda funktionen med loopar men misslyckas eftersom setTimeout () -funktionen används för att vänta en viss tid och kör sedan den givna funktionen. Du kan dock använda setTimeout () -funktionen för att bygga en sömnfunktion med löfte om ditt syfte är att stoppa körningen under önskad tid.

Använda sömnfunktionen

Så vi kommer att göra en anpassad sömnfunktion där funktionen får tid i millisekunder som ett argument och returnerar ett löfte. Löftet kommer att innehålla en setTimeout () -funktion, som skickar resolver som en funktion och tid i millisekunder till setTimeout () -funktionen. Så till slut bör sömnfunktionen se ut så här:

funktion sömn (ms)
returnera nytt Promise (resolver => setTimeout (resolver, ms));
;

Och nu, var du än vill använda den här sömnfunktionen, kan du enkelt använda den.

Nu kommer vi att använda denna sömnfunktion i ett par exempel för att visa dig hur du använder den i praktiken.

Först ska vi försöka trösta lite text och ringa sömnfunktionen. Eftersom sömnfunktionen ger tillbaka ett löfte lägger vi en dåfunktion efter den, där vi kommer att trösta lite text och skicka argumentet '5000' till sömnfunktionen. När du har kört programmet ser du i konsolen att den kommer att sova i 5 sekunder.

trösta.logg ("Viloläge väntar i 10 sekunder och sedan kommer den att skriva ut" Klar "");
sova (5000).sedan (() =>
trösta.log ("Klar");
)

Du kan bevittna fördröjningen på 5 sekunder för att komma till "Klar" status i konsolen.

Antag att vi vill utföra en animering varannan sekund. För att göra det kommer vi helt enkelt att skriva en asynkron animeringsfunktion, där vi animerar något, stoppar körningen i 2 sekunder med viloläge och upprepar sedan processen med en for-loop i 10 gånger.

animering av asynkfunktion (ms)
trösta.log ("börjar ...");
för (låt i = 0; i < 10; i++)
trösta.logg ("animation efter 2 sekunder ...")
väntar på sömn (ms)

trösta.log ("Detta är slutet.");

Efter att ha skrivit den asynkrona animationsfunktionen kan vi nu ringa animeringsfunktionen.

animation (2000);

När du har kört koden ser du i konsolen att texten ”animation efter 2 sekunder” upprepas varannan sekund.

Slutsats

Den här artikeln visade dig hur du gör en anpassad sömnfunktion, tillsammans med flera demonstrationer. Jag hoppas att den här artikeln har hjälpt dig att bättre förstå användningen av sömnfunktion. Du kan lära dig mer om Javascript på linuxhint.com.

Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...