Internett JavaScript: Sleep and setTimeout

noen ganger kommer en programmerer inn i en situasjon der utførelsen av programmet skal avbrytes i kort tid. For å oppnå dette er det ulike muligheter i de forskjellige programmeringsspråkene. I JavaScript, SIDEN ES6, er det mulighet for å bruke Løfter til dette formålet.

  • Implementere en søvnfunksjon
  • Utføre en funksjon med forsinkelse

Implementere en søvnfunksjon

for å suspendere noen få sekunder I JavaScript, er det nok å definere en liten tilleggsfunksjon for deg selv. Sleep-funksjonen returnerer Et Promise-objekt hvis status er satt til løst i millisekunder etter ønsket tid.
function Sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
hvis du vil bruke denne funksjonaliteten nå, må du merke funksjonen din med async-søkeordet. Uten async er det ikke tillatt å bruke avvente-kommandoen. Et eksempel på søknad viser følgende funksjon:
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");
}
funksjonen kaller søvnfunksjonen. Ved hjelp av avvente stopper funksjonens utførelse for den angitte tiden. Uten avvente, vil funksjonen fortsette å kjøre fordi den ikke venter på oppløsningen Av Løftet objektet returnert Av Søvn.

Utfør en funksjon med en forsinkelse

for å utføre en funksjon etter en viss ventetid, er det setTimeout-funksjonen. Med setTimeout passerer du en såkalt tilbakeringing funksjon som skal utføres. Denne funksjonen utføres etter den angitte tiden. Så definer deg selv en funksjon som skal kalles:
function callback() {
console.log("Callback Funktion wird aufgerufen");
}

Nå kan du bruke setTimeout til å ringe funksjonen du nettopp opprettet med den angitte forsinkelsen. Det skal imidlertid bemerkes at følgende kode utføres uten 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å mulig å sende et funksjonsuttrykk som et argument til setTimeout. Så du kan også ringe setTimeout som dette:
setTimeout(function() {
console.log("Callback Funktion wird aufgerufen");
}, 3000);
fordelen her er at ingen ny funksjon må defineres, og du kan umiddelbart se hvilken kodeblokk som utføres etter forsinkelsen.

Tilbakemelding på tilbakemelding på tips
Tilbakemelding på tilbakemelding på Tips

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

More: