Wie kann man "x Sekunden warten" in JavaScript programmieren?
4 Antworten
Mit setTimeout.
Aber das ist nicht immer schön, weil man den auszuführenden Code dabei übergeben muss. Alternativ könntest du eine sleep-Funktion nutzen, die du einfach in deinem Code an der gewünschten Stelle aufrufen kannst:
async function sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
Du kannst die sleep-Funktion dann (innerhalb einer async-Funktion) wie folgt benutzen:
async function testSleep() {
console.log("Waiting for 1 second...");
await sleep(1000);
console.log("Waiting done.");
}
https://stackoverflow.com/questions/1447407/whats-the-equivalent-of-javas-thread-sleep-in-javascript
setTimeout(() => console.log("Ich komme 5 Sekunden später"), 5000);
console.log("Ich bin zuerst!");
https://developer.mozilla.org/en-US/docs/Web/API/setTimeout
Ein ganz simples break, pause, sleep oder ähnliches gibt es nicht, da dies
- eine ganz üble Praxis ist
- den Browser bzw. die ganze Seite aufhängen würde
Gar nicht so richtig, zumindest nicht schön. Du kannst über setTimeout etwas verzögert ausführen, oder auch dir eine Promise bauen die x Sekunden wartet. Das wäre der richtige Weg, stoppt aber nicht die Ausführung von anderem Code wie du es vielleicht möchtest. Das wäre aber auch schlecht.
EDIT: In MrAmazing2s Antwort ist das so umgesetzt wie ich hier beschrieben habe, für Beispielcode einfach seine Antwort anschauen
Mit der setTimeout-Funktion kannst du eine bestimmte Zeitperiode vor Ausführung abwarten:
setTimeout(function() {
/* do something ... */
}, 1000);
Hier wird die übergebene Funktion erst nach einer Sekunde (= 1000ms) ausgeführt.