1.オブザーバーパターン
観察者(生産⽣イベントや登録されたすべての観察者が数字を入れ通知担当)出版社へのロジック(出版社はちょうどイベントの処理で受信し、上の登録された後)
中rxjsで:
-
⽣イベントを生成する方法、それは出版社の責任である、⼯におけるRxJSのように観察可能なオブジェクトです。
-
イベントに応答する方法RxJSが購読のパラメータによって決定されている中で、それは、観察者の責任です。
-
購読使用して調整する場合、観察者は、それが、何であるか準出版社のどのような種類
2.イテレータパターン
使用アプリケーションオフセンターは、シャッターモードを達成するために設定されたこの特定のデータによって完全に加重ので、スルーインタフェースを提供⼀使用してください。
通常、慣れの機能が含まれている必要があり得ます。
-
・GetCurrentは、現在の要素がカーソルによって指され得ます。
-
・MoveToNextは、カーソルがこの機能を使用して調整した後、次の画面要素に移動し、得られたgetCurrent要素は異なるであろう。
-
・IsDoneは、すべての要素が横断かどうかを判断するために完了しています。
subscribr継続的なプッシュの後:中rxjsでのアプリケーション。
3.Observable
var theObserver = { //观察者响应事件
next: item => console.log(item), //表达现在要推送的数据
complete: () => console.log('No More Data'),//推送完结,一般不写
error: () => {console.log('wrong')}//出错
}
var onSubscribe = observer => { //发布者发布事件
var number = 1;
var handle = setInterval(() => {
observer.next(number++);
}, 1000)
return {
unsubscribe: () => { //退订
//clearInterval(handle);
}
};
};
var source$ = new Rx.Observable(onSubscribe);
source$.subscribe(theObserver)
setTimeout(() => {
source$.unsubscribe();
}, 3500);
//Observable产⽣的事件,只有Observer通过subscribe订阅之后才会收到,在unsubscribe之后就不会再收到。
复制代码
観察可能1.hot
const producer = new Producer();//独立一个的生产者
const cold$ = new Observable(observer => {
// 然后让observer去接受producer产⽣的数据
});
复制代码
2.Cold観察可能
const cold$ = new Observable(observer => {
const producer = new Producer();//对每⼀次subscribe都产⽣⼀个“⽣产者”,
// 然后让observer去接受producer产⽣的数据
});
复制代码
4.オペレータが機能に従って、オペレータは、次のカテゴリに分けることができます。
•クラス(作成)を作成します。
・トランスフォーメーション・クラス(変換)
・フィルタタイプ(フィルタリング)
・組み合わせカテゴリー(組み合わせ)
・マルチキャストクラス(マルチキャスト)
・エラー処理カテゴリ(エラー処理)
カテゴリと補助⼯(ユーティリティ)
•条件分⽀クラス(条件付き&ブール値)
・合計と数学のクラス(数理&集計)
共通の演算子:
1.create(クラス関数)が観測可能なオブジェクトを作成します
マップ・アレイ、フィルタと同様2.map、フィルタ(例えば、関数)
バインド特定(呼び出しを連鎖していない)バインディングを使用して観察可能なオブジェクト,: :(結合演算子、チェーンコール):
const operator = map.bind(source$);
const result$ = operator(x => x * 2);
const result$ = source$::map(x => x * 2).filter(x => x % 3 !== 0);
复制代码
地図等のオペレータを実装します。すべてのオペレータが⼀機能で、関係なく達成するためにどのような機能、⾯の機能の下でこれらの点を考慮していない必要があります。・前の新しい被監視オブジェクトに戻ります。
・購読解除およびサブスクリプションプロセスの上流と下流。
・ハンドルの例外。
・リソースのタイムリーなリリース。
私たちのシンプルなマップ、オペレータが手順については、画面上のポイントを達成します。
function map(project) {
return new Observable(observer => {
const sub = this.subscribe({
next: value => {
try {
observer.next(project(value));
} catch (err) {
observer.error(err);
}
},
error: err => observer.error(error),
complete: () => observer.complete(),
});
});
}
复制代码
。。。連続更新