コンテキスト:私は多くのConnectableObservable
を持っています。ほとんどすべて再生回数が1以上です。ある時点で、オブザーバブルの購読と購読解除のオブザーバが多数存在します。RxJS:サブスクリプションの瞬間にのみ放出されるObservableデータをどのように購読しますか?
私が望むもの:多くの場合、オブザーバーがこれらのオブザーバブルの1つにサブスクライブすると、観測可能なデータ再生メカニズムのために受信した可能性のある既存の放出データが気になりません。最近購読されたオブザーバーが関心を持つ唯一のデータは、購読の瞬間の後に放出されるデータです。
const observable = Rx.Observable
.interval(100)
.take(4)
.publishReplay(3);
observable.connect();
問題:は、私の知る限りは、観察者が観察可能に加入する際に、言うことができるように、それは観察データは、サブスクリプションの瞬間の前または後に放出されたかどうかを知る方法がありません。
observable.subscribe(x => console.log('observed', x));
setTimeout(() =>
observable.subscribe(y => console.log('delayed observed', y)),
400
);
意志出力上のコード:
// => observed 0
// => observed 1
// => observed 2
// => delayed observed 0 **don't care**
// => delayed observed 1 **don't care**
// => delayed observed 2 **don't care**
// => observed 3
// => delayed observed 3
この仮定の状況では、遅延された観察者は、サブスクリプションの瞬間の後に放出されたデータにのみ関心があります。この場合、3
。
私はRxJS 5 reference docsを精査して、私が何をしているのかを達成するために銀色の弾丸操作を見つけることができないようです。何か案は?
あなたはこれで解決しようとしている実際の問題とは何ですか?あまり抽象的な例はありませんか? – jonrsharpe
誰がリプレイを必要としますか?遅延オブザーバーは、再生されないストリームのバージョンに加入することはできませんか? – Ptival
お望みのものは、熱心に聞くことができます。この文書はhttps://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-vs-hot-observablesでご覧ください。 –