サブスクライバがいったんサブスクライバを持っていれば、ルックアップを実行して単一の値を出してから完了するという親があります。RxJS 5、ObservableをBehaviorSubject(?)に変換する
私は以下を行う観測可能な(または動作する対象など)ものに変換したい:少なくとも1人の加入者がいれば、それは親観察可能な(1回)結果を得る。次に、その値をすべてのサブスクライバに送信します。サブスクライバがサブスクライバに登録されると、そのすべてのサブスクライバにその単一の値を送信します。加入者数がゼロになってもこの動作を続ける必要があります。
これは簡単なようです。ここでは動作しませんでしたです:動作しませんでした
theValue$: Observable<boolean> = parent$
.take(1)
.share()
他のもの:publishReplay()
、publish()
。より良い仕事を何か:このアプローチに問題があります
theValue$ = new BehaviorSubject<boolean>(false);
parent$
.take(1)
.subscribe(value => theValue$.next(value));
、しかし:parent$
はtheValue$
は、その第1の加入者を獲得する前に加入されます。
これを処理するより良い方法はありますか?
これは動作するようです!私は少し驚きがないことを確認するために、それと一緒にプレーするつもりです。これは素晴らしそうです - 私は彼らがそれを作成したときにドキュメントにこれを追加したことを願っています。私は離れて行くことができる文書化されていない機能を使用しているように感じるのは好きではありません。しかし、私はそれをchangelogで追加されたものと見ているので、私はそれがここにあると推測しています。 – Karptonite
それはあります。ドキュメントは進行中の作業です。とにかく 'publishReplay(1).refCount()'と非常に近いです。違いは微妙です。 – cartant
非常に徹底的なブログ記事を読んだ後、私が実際に望むものは 'publishLast()。refCount'ですが、実際は私の場合は機能的にほぼ同じかもしれません。再度、感謝します! – Karptonite