Observableがあるとしましょう:
var observable = Rx.Observable
.fromEvent(document.getElementById('emitter'), 'click');
どうすればそれを完全にすることができますか (サブスクライブされたすべてのオブザーバーのonCompleteイベントをトリガーするものは何ですか) ?
Observableがあるとしましょう:
var observable = Rx.Observable
.fromEvent(document.getElementById('emitter'), 'click');
どうすればそれを完全にすることができますか (サブスクライブされたすべてのオブザーバーのonCompleteイベントをトリガーするものは何ですか) ?
この現在の形では、できません。オブザーバブルは、完了しないソースから派生しているため、それ自体は完了できません。できることは、このソースを完全な条件で拡張することです。これは次のように機能します。
var end$ = new Rx.Subject();
var observable = Rx.Observable
.fromEvent(document.getElementById('emitter'), 'click')
.takeUntil(end$);
終わりたい時observable
はするend$.onNext("anything you want here");
。それは、終了イベントがあなたによって生成された場合です。これがそのイベント (キー押下など) を生成する別のソースである場合、そのソースから派生したオブザーバブルを の引数として直接配置できますtakeUntil
。
ドキュメンテーション: