setTimeout(() => { // do something after 100ms. }, 100); setTimeout()に渡したコールバック関数は、JavaScriptランタイムのメッセージキューに登録されます。 setTimeout()の呼び出し元は、コールスタックのすべての関数がreturnすることで、ランタイムに処理が戻ります。 ランタイムは、メッセージキューにすぐに実行できる関数があれば実行し、なければ待ちます。 メッセージキューには setTimeout()で登録されたもののように、一定時間後にならなければ実行できないものと、setImmediate()やPromiseで登録されたもののように即座に実行できるものがあります。 メッセージキューが空になると、Node.jsの環境であればプログラムが終了します。 setTimeout()のスリープで何が問題か? se
![JavaScriptで同期的にsleepする方法 (通常用途には使わないでください) - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6e26ee55555120833fa33090cf61a606a62ac4c8/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9SmF2YVNjcmlwdCVFMyU4MSVBNyVFNSU5MCU4QyVFNiU5QyU5RiVFNyU5QSU4NCVFMyU4MSVBQnNsZWVwJUUzJTgxJTk5JUUzJTgyJThCJUU2JTk2JUI5JUU2JUIzJTk1JTIwJTI4JUU5JTgwJTlBJUU1JUI4JUI4JUU3JTk0JUE4JUU5JTgwJTk0JUUzJTgxJUFCJUUzJTgxJUFGJUU0JUJEJUJGJUUzJTgyJThGJUUzJTgxJUFBJUUzJTgxJTg0JUUzJTgxJUE3JUUzJTgxJThGJUUzJTgxJUEwJUUzJTgxJTk1JUUzJTgxJTg0JTI5JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0xNjRmM2E0OWM1ZjU2ZGI1NWRkZWZhNzliMzMzNjBiNA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwc2hlbGx5bG4mdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWEwN2QwNzg1NDgxOTE1NWQ0ZWM5ZjBkMmViOTJmYzc5%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D2aab621aafa42134e0f2da747f24b0c8)