uneori, un programator intră într-o situație în care executarea programului ar trebui întreruptă pentru o perioadă scurtă de timp. Pentru a realiza acest lucru, există diferite posibilități în diferite limbaje de programare. În JavaScript, de la ES6, există opțiunea de a utiliza promisiuni în acest scop.
- implementarea unei funcții de somn
- executarea unei funcții cu întârziere
implementarea unei funcții de somn
pentru a suspenda câteva secunde în JavaScript, este suficient să definiți o mică funcție auxiliară pentru dvs. Funcția Sleep returnează un obiect promisiune a cărui stare este setată la rezolvat în milisecunde după timpul dorit.function Sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
dacă doriți să utilizați această funcționalitate acum,trebuie să vă marcați funcția cu cuvântul cheie asincron. Fără asincron, nu este permisă utilizarea comenzii wait. O aplicație exemplară prezintă următoarea funcție: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");
}
funcția numește funcția de somn. Folosind wait, execuția funcției se oprește pentru timpul specificat. Fără așteptare, funcția ar continua să funcționeze, deoarece nu așteaptă rezoluția obiectului promis returnat de somn.
executați o funcție cu o întârziere
pentru a executa o funcție după un anumit timp de așteptare, există funcția setTimeout. Cu setTimeout treceți o așa-numită funcție de apel invers pentru a fi executată. Această funcție este efectuată după timpul specificat. Deci, definiți-vă o funcție care trebuie apelată:function callback() {
console.log("Callback Funktion wird aufgerufen");
}
acum Puteți utiliza setTimeout pentru a apela funcția pe care tocmai ați creat-o cu întârzierea specificată. Cu toate acestea, trebuie remarcat faptul că următorul cod este executat fără timp de așteptare:setTimeout(callback, 3000); //Ruft die Callback-Funktion nach 3 Sekunden auf
console.log("Test"); //Wird sofort, ohne Wartezeit ausgeführt
alternativ, este de asemenea posibil să se treacă o expresie funcție ca un argument pentru a setTimeout. Deci, puteți apela, de asemenea, setTimeout ca aceasta:setTimeout(function() {
console.log("Callback Funktion wird aufgerufen");
}, 3000);
avantajul aici este că nu trebuie definită nicio funcție nouă și puteți vedea imediat ce Bloc de cod este executat după întârziere.