タグ

ブックマーク / qiita.com/shellyln (1)

  • JavaScriptで同期的にsleepする方法 (通常用途には使わないでください) - Qiita

    setTimeout()に渡したコールバック関数は、JavaScriptランタイムのメッセージキューに登録されます。 setTimeout()の呼び出し元は、コールスタックのすべての関数がreturnすることで、ランタイムに処理が戻ります。 ランタイムは、メッセージキューにすぐに実行できる関数があれば実行し、なければ待ちます。 メッセージキューには setTimeout()で登録されたもののように、一定時間後にならなければ実行できないものと、setImmediate()やPromiseで登録されたもののように即座に実行できるものがあります。 メッセージキューが空になると、Node.jsの環境であればプログラムが終了します。 setTimeout()のスリープで何が問題か? setTimeout()は、上述の通り現在のコールスタックがすべてreturnしなければ処理が始まらないのですから、現

    JavaScriptで同期的にsleepする方法 (通常用途には使わないでください) - Qiita
  • 1