Wie kann man "x Sekunden warten" in JavaScript programmieren?

4 Antworten

Von Experte BeamerBen bestätigt

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

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
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
Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung

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.

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

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops