ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript イベントループを理解する

JavaScript イベントループを理解する

Barbara Streisand
リリース: 2025-01-26 20:33:13
オリジナル
627 人が閲覧しました

JavaScriptのイベントループの理解:包括的なガイド

javascriptは、シングルスレッドであるため、コードを順番に実行します。 これは、メインスレッドをブロックして無反応を引き起こす可能性のある非同期操作(サーバーデータの取得やユーザーインタラクションなど)を扱う際の課題を提示します。 解決策? イベントループ。この記事では、イベントループの段階的な説明を提供し、JavaScriptがコード実行、タスク、および非同期操作をどのように管理するかを明確にします。 イベントループが説明しました

イベントループは、JavaScriptのシングルスレッドアーキテクチャが非同期タスクを効率的に処理できるコアメカニズムです。 コールスタック、Web API、コールバックキュー、マイクロタスクキュー間の相互作用を調整することにより、ブロッキングを防ぎます。これらのコンポーネントを調べてみましょう。

イベントループの重要なコンポーネント

    コールスタック:
  1. このスタックは関数呼び出しを管理します。関数は呼び出されたときに追加され、完了時に削除されます Web APIS/ノードAPI:
  2. これらの外部APIは、
  3. 、DOMイベントなどの非同期タスクを処理します。彼らはコールスタックの外で動作します setTimeout()コールバックキュー(タスクキュー):fetch非同期操作が終了すると、その関連するコールバック関数がこのキューに配置され、実行を待っています。
  4. マイクロタスクキュー:このキューは、Promise Resolutionsやコールバックなどのタスクに優先順位を付け、コールバックキューのタスクの前にそれらを実行します。
  5. イベントループ:コールスタックを常に監視すると、イベントループは、スタックが空になったら次のタスク(どちらかのキューから)をスタックに移動します。 MutationObserverステップバイステップの例 コードを使用してイベントループの操作を説明しましょう。
  6. 同期コードは行ごとに実行されます。
はコールスタックに追加され、logs "

start

"が削除されます。

はコールスタックに追加されます。 Web APIでコールバックを登録し、削除します。コールバックはWeb APIで待機し、そのタイマーは0ミリ秒に設定されています。

Understanding JavaScript Event Loopが追加され、logs "

end
    "が削除されます。
  1. console.log("Start")コールスタックが空になりました。イベントループでは、タスクキューをチェックします。コールバックは、タイマーの有効期限が切れた後、Web APIからタスクキューに移動します。イベントループはそれをコールスタックに押し込み、「タイムアウトコールバック
  2. 」を記録し、削除されます。
  3. setTimeout()
  4. console.log("End")出力:
  5. マイクロタスクキューを理解
  6. javaScriptは別のレイヤーを追加します:マイクロタスク、主に約束に関連付けられています。 マイクロタスクが優先順位を付けられています。コールバックキューのタスクの前に、同期コードの直後に実行します。 この例を考えてみましょう:

    実行フロー:

    Understanding JavaScript Event Loop

    およびstart

      」と「
    1. endconsole.log("Start")」を記録します console.log("End")のコールバックは、Web APIでスケジュールされています 'sコールバックがマイクロタスクキューに追加されます
    2. イベントループが最初にマイクロタスクキューを処理し、「
    3. 約束が解決されたsetTimeout()」を記録します。
    4. 最後に、イベントループはタスクキューを処理し、「
    5. タイムアウトコールバック」を記録します。 Promise.resolve() .then()
    6. 出力:
    7. この優先順位付けにより、緊急のタスク(約束解決策など)が迅速に処理されることが保証されます。 あなたの知識をテストに入れてください
    8. 理解のテスト:このコードスニペットの出力を予測し、実際の結果と比較してください。

    Understanding JavaScript Event Loop

    結論

    JavaScriptの単一スレッドの性質は、イベントループによって補完され、効率的な非同期操作処理を可能にします。コールスタック、Web API、コールバックキュー、およびマイクロタスクキューは、非同期タスクのタイプに関係なく、JavaScriptコードの応答性とスムーズな実行を維持するために、イベントループによって調整された、一緒に動作します。 イベントループのマスタリングは、JavaScriptで非同期プログラミングをマスターするための鍵です。

以上がJavaScript イベントループを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート