RxJs 5 share()
オペレータの動作は100%わかりません。latest docsを参照してください。質問hereのJsbin。RxJs 5のshare()演算子はどのように機能しますか?
Iは0〜2の一連の、二番目で区切られた各値と観測可能なを作成する場合:
var source = Rx.Observable.interval(1000)
.take(5)
.do(function (x) {
console.log('some side effect');
});
そして私は、この観測可能に2人の加入者を作成した場合:
source.subscribe((n) => console.log("subscriptor 1 = " + n));
source.subscribe((n) => console.log("subscriptor 2 = " + n));
私が手これはコンソールで:
"some side effect ..."
"subscriptor 1 = 0"
"some side effect ..."
"subscriptor 2 = 0"
"some side effect ..."
"subscriptor 1 = 1"
"some side effect ..."
"subscriptor 2 = 1"
"some side effect ..."
"subscriptor 1 = 2"
"some side effect ..."
"subscriptor 2 = 2"
私は各サブスクリプションが同じObservableを購読すると思っていましたが、それは事実ではないようです!その購読の行為のように完全に別のオブザーバブルを作成します!
しかしshare()
オペレータが観察可能なソースに追加された場合:
var source = Rx.Observable.interval(1000)
.take(3)
.do(function (x) {
console.log('some side effect ...');
})
.share();
その後、我々はこれを取得:
"some side effect ..."
"subscriptor 1 = 0"
"subscriptor 2 = 0"
"some side effect ..."
"subscriptor 1 = 1"
"subscriptor 2 = 1"
"some side effect ..."
"subscriptor 1 = 2"
"subscriptor 2 = 2"
私はshare()
せずに期待するものはどれ。
ここで何が起こっているのですか?share()
オペレータはどのように機能しますか?各サブスクリプションは新しいObservableチェーンを作成しますか?