JavaScriptにおける同期コードと非同期コード
次のコードを考えてみましょう:
console.log('1');
console.log('2');
明らかに、最初に1つ目のコンソール出力が動作し、 その後、2つ目が動作します。つまり、コード内の コマンドは、コード内での記述順に従って 順番に実行されます。このようなコードは 同期と呼ばれます。
では、次のコードを考えてみましょう:
setTimeout(function() {
console.log('1');
}, 3000);
console.log('2');
この場合、コマンドはコードの記述順には 実行されません: 1つ目のコンソール出力は、 その時間が来たときに実行されますが、 他のコードはその瞬間を待たずに、 実行を継続します。このようなコードは 非同期と呼ばれます。
非同期コードはJavaScriptにおいて非常に 頻繁に発生します: タイマーを扱うとき、 イベントハンドラをバインドするとき、 画像をロードするとき、サーバーからページの 一部をロードすることを可能にするAJAX技術を 扱うとき、サーバーサイドJavaScriptを表す NodeJSを扱うときなどです。