Ich stimme den anderen Postern zu. Ein überfüllter Schlaf ist einfach eine schlechte Idee.
Allerdings hält setTimeout die Ausführung nicht auf. Die nächste Zeile der Funktion wird sofort nach dem Setzen der Zeitüberschreitung ausgeführt, nicht erst nach Ablauf der Zeitüberschreitung, so dass nicht dieselbe Aufgabe erfüllt wird, die ein Ruhezustand erfüllen würde.
Dazu müssen Sie Ihre Funktion in einen Vorher- und einen Nachher-Teil aufteilen.
function doStuff()
{
// Do some things
setTimeout(continueExecution, 10000) // Wait ten seconds before continuing
}
function continueExecution()
{
// Finish doing things after the pause
}
Vergewissern Sie sich, dass Ihre Funktionsnamen immer noch genau beschreiben, was die einzelnen Teile tun (z. B. GatherInputThenWait und CheckInput, anstatt funcPart1 und funcPart2)
Mit dieser Methode wird der Zweck erreicht, dass die von Ihnen festgelegten Codezeilen erst dann ausgeführt werden, wenn nach Ihre Zeitüberschreitung, während gleichzeitig die Kontrolle an den Client-PC zurückgegeben wird, damit dieser alle anderen Aufgaben ausführen kann, die in der Warteschlange stehen.
Wie in den Kommentaren hervorgehoben wurde, wird dies absolut nicht funktionieren in einer Schleife. Sie könnten einige ausgefallene (hässlich) hacken, um es in einer Schleife arbeiten, aber im Allgemeinen, die nur für katastrophale Spaghetti-Code machen wird.