Internet JavaScript: Sleep and setTimeout

nogle gange kommer en programmør i en situation, hvor udførelsen af programmet skal afbrydes i kort tid. For at opnå dette er der forskellige muligheder på de forskellige programmeringssprog. I JavaScript, siden ES6, er der mulighed for at bruge løfter til dette formål.

  • implementering af en søvnfunktion
  • udførelse af en funktion med en forsinkelse

implementering af en søvnfunktion

for at suspendere et par sekunder i JavaScript er det nok at definere en lille hjælpefunktion for dig selv. Sleep-funktionen returnerer et Løfteobjekt, hvis status er indstillet til løst i millisekunder efter den ønskede tid.
function Sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
hvis du vil bruge denne funktionalitet Nu, skal du markere din funktion med async-nøgleordet. Uden async er det ikke tilladt at bruge afventningskommandoen. En eksemplarisk applikation viser følgende funktion:
async function test() {
console.log("Vor der sleep-Funktion");
await Sleep(3000); // Pausiert die Funktion für 3 Sekunden
console.log("Nach der Sleep Funktion");
}
funktionen kalder søvnfunktionen. Ved hjælp af afvente stopper funktionsudførelsen for den angivne tid. Uden afventning vil funktionen fortsætte med at køre, fordi den ikke venter på opløsningen af Løfteobjektet, der returneres af søvn.

udfør en funktion med en forsinkelse

for at udføre en funktion efter en bestemt ventetid er der setTimeout-funktionen. Med setTimeout passerer du en såkaldt tilbagekaldsfunktion, der skal udføres. Denne funktion udføres efter den angivne tid. Så Definer dig selv en funktion, der skal kaldes:
function callback() {
console.log("Callback Funktion wird aufgerufen");
}

nu kan du bruge setTimeout til at ringe til den funktion, du lige har oprettet med den angivne forsinkelse. Det skal dog bemærkes, at følgende kode udføres uden ventetid:
setTimeout(callback, 3000); //Ruft die Callback-Funktion nach 3 Sekunden auf
console.log("Test"); //Wird sofort, ohne Wartezeit ausgeführt

alternativt er det også muligt at videregive et funktionsudtryk som et argument til setTimeout. Så du kan også ringe til setTimeout som denne:
setTimeout(function() {
console.log("Callback Funktion wird aufgerufen");
}, 3000);
fordelen her er, at der ikke skal defineres nogen ny funktion, og du kan straks se, hvilken kodeblok der udføres efter forsinkelsen.

Feedback på tip feedback
Feedback på tip Feedback

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

More: