ホームページ  >  記事  >  ウェブフロントエンド  >  JS非同期プログラミング例を詳しく解説

JS非同期プログラミング例を詳しく解説

小云云
小云云オリジナル
2018-02-28 11:31:141379ブラウズ

JS言語の実行環境は「シングルスレッド」 なぜ非同期プログラミングが発生するのでしょうか?

単一スレッドとは、一度に 1 つのタスクのみを完了できることを意味します。複数のタスクがある場合は、それらをキューに入れ、前のタスクが完了するまで待ってから、次のタスクを実行する必要があります。

2 つのタスク実行モード: 同期と非同期
「非同期モード」:
コールバック関数は、非同期プログラミングの最も基本的な方法です。各タスクには 1 つ以上のコールバック関数があり、前のタスクが実行された後は次のタスクは実行されませんが、前のタスクが完了した後に後者のタスクが実行されるため、プログラムの実行順序は決まります。ソート順序が一貫性がなく、非同期です。
非同期プログラミングの 4 つの方法:

1. コールバック関数
これは、非同期プログラミングの最も基本的な方法です。
f1 と f2 という 2 つの関数があり、後者は前者の実行結果を待つとします。
f1 が時間のかかるタスクの場合は、f2 を f1 のコールバック関数として記述できます。

function f1(callback){ 

  setTimeout(function(){ 

  //f1的任务代码 

  callback(); 

  },1000); 

  }

コードを実行

f1(f2)
この方法を使用する利点は、シンプルで理解しやすく、展開しやすいことです。欠点は、コードの読み取りと保守が難しく、プロセスが非常に複雑になることです。タスクごとにコールバック関数を指定できます。

2. イベント監視
イベント駆動型モデルを採用します。タスクの実行はコードの順序ではなく、イベントが発生するかどうかによって決まります。
まず、イベントをf1にバインドします(jQueryの記述メソッドを使用)。

f1.on(‘done’,f2); 

  //当f1发生done事件,就执行f2。然后对f1进行改写:

は次のとおりです:

fuction f1(){ 

  setTimeout(function(){ 

  //f1的任务代码 

  f1.trigger(‘done’); 

  },1000); 

  }

f1.tigger(‘done’) は、実行が完了した後、すぐにdoneイベントがトリガーされ、f2の実行が開始されることを意味します。
この方法の利点は、理解しやすいこと、複数のイベントをバインドできること、各イベントで複数のコールバック関数を指定できること、分離できるため、モジュール化が容易であることです。
欠点: プログラム全体をイベント駆動型にする必要があり、実行プロセスが非常に不明確になります。

関連する推奨事項:

JavaScript非同期プログラミングの4つの方法の紹介

JavaScript非同期プログラミングのコールバック関数とマネージャーの使用例の詳細な説明

JavaScript非同期プログラミング方法の紹介

以上がJS非同期プログラミング例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。