néha egy programozó olyan helyzetbe kerül, hogy a program végrehajtását rövid időre meg kell szakítani. Ennek megvalósításához különféle lehetőségek vannak a különböző programozási nyelvekben. A JavaScriptben az ES6 óta lehetőség van az ígéretek használatára erre a célra.
- alvó funkció végrehajtása
- késleltetett funkció végrehajtása
alvó funkció végrehajtása
néhány másodperc felfüggesztéséhez a JavaScript-ben elegendő egy kis kiegészítő funkció meghatározása. A Sleep függvény egy olyan Ígéretobjektumot ad vissza, amelynek állapota a kívánt idő után ezredmásodpercben van feloldva.function Sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
ha most szeretné használni ezt a funkciót, meg kell jelölnie a funkcióját az aszinkron kulcsszóval. Aszinkron nélkül nem engedélyezett a várakozás parancs használata. Egy példaértékű alkalmazás a következő funkciót mutatja: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");
}
a funkció az alvás funkciót hívja. A várakozás használatával a funkció végrehajtása a megadott időre leáll. Várakozás nélkül a funkció továbbra is fut, mert nem várja meg az alvás által visszaadott ígéret objektum felbontását.
funkció végrehajtása késleltetéssel
egy funkció végrehajtásához egy bizonyos várakozási idő után van a setTimeout funkció. A setTimeout akkor adja át az úgynevezett visszahívási funkciót kell végrehajtani. Ezt a funkciót a megadott idő után hajtják végre. Tehát határozza meg magának egy függvényt, amelyet meg kell hívni:function callback() {
console.log("Callback Funktion wird aufgerufen");
}
most a setTimeout segítségével hívhatja meg az imént létrehozott funkciót a megadott késleltetéssel. Meg kell azonban jegyezni, hogy a következő kódot várakozási idő nélkül hajtják végre:setTimeout(callback, 3000); //Ruft die Callback-Funktion nach 3 Sekunden auf
console.log("Test"); //Wird sofort, ohne Wartezeit ausgeführt
Alternatív megoldásként egy függvénykifejezést argumentumként is átadhatunk a setTimeout-nak. Tehát a setTimeout-ot is így hívhatja:setTimeout(function() {
console.log("Callback Funktion wird aufgerufen");
}, 3000);
ennek az az előnye, hogy nem kell új függvényt definiálni, és azonnal látható, hogy a késleltetés után melyik kódblokk kerül végrehajtásra.