開発中によく「コールバック関数」という用語に遭遇します。これらの関数は非同期で実行されます。つまり、プログラムの標準的な同期フローの外で実行されます。しかし、この非同期動作は具体的に何がトリガーされるのでしょうか?
JavaScript では、コールバック関数の構文は非同期を示しません。同期コールバックと非同期コールバックはどちらも同様の構造を持っています。
関数がコールバックを同期的に呼び出すか非同期的に呼び出すかを判断する唯一の確実な方法は、参照することです。ドキュメント。ドキュメントがなくても、簡単なテストを実行してその動作を確認することもできます。
JavaScript には基本的に非同期性が組み込まれていません。これを実現するには、開発者には 2 つのオプションがあります。
< ;h3>イベントの役割Loop
イベント ループは、JavaScript のアーキテクチャの重要な部分です。非同期実行の開始と、ネットワーク I/O などのイベントの処理を担当します。 select() のような I/O プリミティブを採用することで、イベント ループは余分なスレッドを作成せずに複数の I/O 操作を効率的に待機します。
I/O 操作が完了すると、select() はインタープリタに通知します。次に、インタプリタは関連する I/O チャネルに関連付けられたコールバックを識別し、それを実行します。このメカニズムは、setTimeout と setInterval の機能も支えています。
最新のブラウザーと Node.js はイベントを拡張しました。ループモデル。ファイルベースの I/O を処理するスレッドが組み込まれています。完了すると、これらのスレッドはメイン イベント ループと通信して、適切なコールバック実行をトリガーします。
非同期実行はイベント ループとスレッドベースに固有のものです。 I/O管理。これらの基礎となるメカニズムを理解すると、JavaScript および関連テクノロジーの非同期プログラミングの理解が深まります。
以上が組み込みの非同期性がないにもかかわらず、JavaScript はどのようにして非同期動作を実現するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。