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.