私はAngular2の変更検知メカニズムに着手し始めました。angular2 VMのターンとイベントを理解する
私はThoughramのブログ記事(ZoneJSとAngular2ゾーン)を読みましたが、まだ1つの用語がありますが、定義が見つかりません。
はここthisポストからの抜粋です:
NgZoneは基本的にそのAPIを拡張し、その実行コンテキストにはいくつかの 追加機能を追加するフォークゾーンです。ことの一つ それがAPIに追加されますが、カスタムイベントの次のセットである彼らが観察ストリームであるとして、我々は 、を購読することができます:
onTurnStart() - ちょうど角のイベントのターンが始まる前に 加入者に通知します。 Anglerによって処理されるブラウザのタスクごとに1回、イベント を発行します。
onTurnDone() - は角のゾーンが現在のターンとその ターンからスケジュール任意のマイクロタスクの処理 に行われた直後に加入者に通知します。
onEventDone() - 仮想イベントを終了する前に、最後のonTurnDone()コールバックの直後にサブスクライバに通知します。私はゾーンの概念を理解し、それをフォークすることができる 検証アプリケーションの状態
へのテストのために有用な、私が持っている唯一の問題は、私は任意の定義を見つけることができないため、VM turn
とVM event
です。
これらのVMのイベントとターンは何ですか? ZoneJS、Angular、または単にブラウザの一部ですか?
ありがとう、Avi。誰もがその答えに興味があるなら
"Zone turnは1つのマイクロタスクのようです(コメントの中のGünterZöchbauer)" zone turns:http://stackoverflow.com/questions/37114478/what-are-zone-turns –
基本的にZoneJSライブラリは、すべてのゾーンイベントを待ち行列に入れるキュー(例えば、NgZoneの場合は 'onTurnDone')?そして、VM /ゾーンターンは、その待ち行列からそのような保留中のイベントを1つ取り出して実行するプロセスです。 –