非同期処理ってよく聞くけどどういうことなのかいまいち分かっていなかったので、JavaScriptを題材に勉強がてら基本的なところをまとめます。 非同期処理ってなに? プログラムって実行すると、コードを上から順に1行ずつ実行していきますね。 その処理の1つに時間のかかる処理があると、その実行が完了するまで、次の行には進みません。 例えば次のようなコード。実行環境はNode.js (v5.3.0) です。 処理の途中で5秒間sleepします。 console.log("start"); function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); console.log("sleepが完了しました。");
![非同期処理ってどういうこと?JavaScriptで一から学ぶ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/ccfe1ce8e29f14d17a7434bef6076f14beebdb60/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-7940cd1c8db80a7ec40711d90f43539e.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU5JTlEJTlFJUU1JTkwJThDJUU2JTlDJTlGJUU1JTg3JUE2JUU3JTkwJTg2JUUzJTgxJUEzJUUzJTgxJUE2JUUzJTgxJUE5JUUzJTgxJTg2JUUzJTgxJTg0JUUzJTgxJTg2JUUzJTgxJTkzJUUzJTgxJUE4JUVGJUJDJTlGSmF2YVNjcmlwdCVFMyU4MSVBNyVFNCVCOCU4MCVFMyU4MSU4QiVFMyU4MiU4OSVFNSVBRCVBNiVFMyU4MSVCNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9MWJmZGY0OTAwMTllNmUwODM5NjA5Y2U3NTM4Y2FkMzg%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDBraXlvZG9yaSZ0eHQtY29sb3I9JTIzM0EzQzNDJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YjM5OTk1NTJiMDk1NGQ2ZWVjN2Q0MDQ2NDFiMDQ4Njk%26blend-x%3D120%26blend-y%3D500%26blend-mode%3Dnormal%26s%3Ded9228f84990c8a07d2d4da8097ed592)