デイモン道路学習のES6 - JSは模式的な非同期/同期を理解(3日目)

同期および非同期の概念がどのように多くは、実際には多少、漠然とした機能の約束、約束を必要とするだけでなく、同期および非同期の問題を伴う次の学習ジェネレータ機能に進むことができ、同期されていると最初の非同期の概念をロールアップすることにしました。

同期/非同期の問題を理解することは、我々が最初に明確にする必要があります。

JSは、シングルスレッドの頭の鉄の赤ちゃんです!

シングルスレッドが同時に一つだけを行うことができ、人気のポイント。「と呼ばれる多くのオンライン記事のパイプラインは非常に適切です」、。
プログラミングを学習するので、常に読み、「されたコードの書き込み、知られている自己の下で作られた非常に明白な「シングルスレッド」または「組立ライン」機能です、」。

JSメインスレッド

何が引数の「メインスタック」のソートではなく、ポイントの面で、それを理解するための名前のように思えます。あなたは非同期で理解したい場合は私が「と解釈されるための最良の方法だと思うのスレッドを」、と私はとして理解されなければならない:頭鉄JS、それが実行される主なものの下のコードから読み取ります。長い時間がかかるが必要、(例えば、サーバ要求などの外部出力装置、)必要なIOデバイスではない、唯一のJSコード自体、すなわち、メインスレッド、実行することができます。

JSキューコンセプト

JSは一方向のみの車線、車でコードのセクション、車線介して車両を可能にすることにより、自動車のようなシングルスレッドの実行、ですので、あなたがする必要が並びますこれはJSあるキューたとえばたsetInterval setTimeout関数と、実際には、非同期関数である、遅延の設定が0の場合でも、まだキューがメインの実行後に配置され、新しいキューを形成します。遅延は0よりも大きく設定されている場合は、メインが完了した後、キューNミリ秒を実行します。

JS同期/非同期

概念とメインスレッドのキューを理解し、理解するために、実際に多くのように、同期および非同期の両方を理解して行きます。

同期:

それは同期されるメインスレッドコード内に配置されています。

非同期:

ロングコードを取り、シングルスレッド機構JSながら、長い時間がかかる、または外部の助けを必要とする(IOデバイスを、または他の私は一時的なものか、特別なニーズを知らない)いくつかのコードは、背後にあるコードをプラグインすることは容易であるため、効率のために、それは非常に良いではありません。あなたの車が故障したり、すべての車の後ろに降りるためにあなたを待ってみましょうことは容易で見てみたい、それはあまりにも利己的なようで、あまりにも長い遅延。されて入ってきた、それは非同期コードになりますので、非同期は、メインスレッドに配置され実行されているメインスレッドが終了したときに、再び非同期コードを実行します。それは別のキュー、メインスレッドの後に実行キュー構造の形成に対応します。(非同期コードは、それはまだシングルスレッドアイアンヘッド人形JSで、トップダウンの同じ種類の新しいキューを形成し、複数のセグメントを有していてもよい)
、メインスレッドの実行が終了した後に、非同期キューを実行するために行くだろうが、非同期、ことに留意すべきですキューがあり、コールバック非同期メソッド
非同期の意味自体は、コードの効率を高めることである、コードが独立して実行するのに長い時間がかかります。それは同時に、新しいキューを形成し、それがコードを実行するために行くだろう(例えば、要求)非同期で、実行後のメインキューが完了すると、システムは、非同期コードが完了し、完了した場合、コードがあれば、非同期のコールバック関数と呼ばれ、見に行きます終了しませんでした、それは非同期コードの完了を待ちます。一般的に、非同期コードのコールバック関数は3つの状態があります。未実行成功および失敗しました
これらは、同期/非同期の私の最初の理解されています。サプリメントを発見した場合は、エラーやあいまいなところがあるかもしれません、私は後で戻ってくるだろう。

おすすめ

転載: blog.csdn.net/qq_26332449/article/details/94721916