Internet JavaScript: Sleep a setTimeout

někdy se jako programátor dostanete do situace, kdy chcete na krátkou dobu přerušit spuštění programu. V různých programovacích jazycích existují různé možnosti, jak toho dosáhnout. V JavaScriptu existuje od ES6 možnost používat pro tento účel Promises.

  • implementovat funkci spánku
  • spustit funkci se zpožděním

implementovat funkci spánku

Chcete-li v JavaScriptu pozastavit několik sekund, stačí si definovat malou pomocnou funkci. Funkce Sleep vrátí objekt Promise, jehož stav se po požadovaném čase v milisekundách nastaví na resolved.
function Sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
Chcete-li tuto funkci použít, musíte ji označit klíčovým slovem async. Bez async nelze použít příkaz await. Příklad aplikace ukazuje následující funkci:
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");
}
funkce vyvolá funkci Sleep. Pomocí funkce await se funkce zastaví na zadaný čas. Bez await by Funkce pokračovala, protože nebude čekat na rozlišení objektu Promise vráceného Sleepem.

spustit funkci se zpožděním

Chcete-li provést funkci po určité době čekání, je k dispozici funkce setTimeout. Při setTimeout předáváme funkci Callback, kterou je třeba provést. Tato funkce se provádí po zadaném čase. Definujte funkci, která má být volána:
function callback() {
console.log("Callback Funktion wird aufgerufen");
}

nyní můžete pomocí setTimeout vyvolat právě vytvořenou funkci se zadaným zpožděním. Je však třeba poznamenat, že následující kód je spuštěn bez čekání:
setTimeout(callback, 3000); //Ruft die Callback-Funktion nach 3 Sekunden auf
console.log("Test"); //Wird sofort, ohne Wartezeit ausgeführt

alternativně je možné předat výraz funkce jako Argument pro setTimeout. SetTimeout můžete vyvolat také následujícím způsobem::
setTimeout(function() {
console.log("Callback Funktion wird aufgerufen");
}, 3000);
výhodou je, že není nutné definovat novou funkci a okamžitě vidíte, který blok kódu se po zpoždění spustí.

zpětná vazba na tip
zpětná vazba na tip

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

More: