JavaScript イベント ループとは何ですか?
JavaScript におけるイベント ループは、ノンブロッキング I/O を使用してコード、イベント、またはメッセージの実行を制御するメカニズムです。これにより、JavaScript でノンブロッキング、つまり非同期の操作を行う方法が提供されます。
1.シングルスレッド
JavaScript はシングルスレッドです。つまり、一度に 1 つのタスクを実行します。シングルスレッドなので、JavaScript が実行される 1 つのスレッドがいわゆる「メインスレッド」となります。
2.コールスタック
これは、JavaScript が関数呼び出しを追跡するデータ構造です。関数呼び出しはスタックにプッシュされます。戻ってくると削除されます。空の場合、JavaScript は次の処理を行う準備ができています。一般に「メインスレッド」とも呼ばれます。
3.ヒープ
これは、JavaScript がオブジェクトと変数を保存する場所です。これは動的メモリ割り当てに使用されます。
4.イベントキュー
実行を待っているメッセージまたはタスクのキュー。タスクがキューに追加されると、呼び出しスタックが空になるまで待機して実行されます。
5.イベントループ
コールスタックとイベントキューを常に監視するものです。呼び出しスタックが空の場合、タスクをイベント キューから呼び出しスタックに移動し、実行します。
プロセス
コールバック関数: 非同期操作が完了すると、そのコールバック関数がイベント キューにプッシュされます。
イベント ループ チェック: イベント ループは、オーダー内のイベント キューだけでなくコール スタックもチェックするようになりました。コール スタックが空の場合、イベント キューから最初のタスクを選択し、それをコール スタックにプッシュして実行します。
console.log('Start'); setTimeout(() => { console.log('Timeout 1'); }, 1000); setTimeout(() => { console.log('Timeout 2'); }, 500); console.log('End');
次のことが段階的に行われることに注意してください:
概要
以上がJavaScriptイベントループの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。