Wie kann man "x Sekunden warten" in JavaScript programmieren?
4 Antworten
![](https://images.gutefrage.net/media/user/MrAmazing2/1562539605664_nmmslarge__63_0_466_466_da6195808c107c57ce2a8b233a2bcf4f.jpg?v=1562539606000)
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
![](https://images.gutefrage.net/media/user/Lezurex/1575979598014_nmmslarge__0_0_796_796_cce3bba999d2f4ba9ba6f831bd4f56ac.jpg?v=1575979598000)
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
![](https://images.gutefrage.net/media/user/BeamerBen/1624574570675_nmmslarge__158_0_202_202_aeaa6e33027519ad8eedead1ddc9d3c9.png?v=1624574571000)
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
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
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.