をデバウンスしていないマージのTextViewで開かれた一部のコンテンツを持つファイルをRxJavaは、私は2つの観測持っデバウンス観測
観察可能なE(編集):TextViewの中で編集したファイルの内容
私はE observableをデバウンスし、それをO observableとマージしたいと思います。
obs = Observable.merge(E.debounce(2000, TimeUnit.MILLISECONDS) , O)
.subscribe(content->System.out.println("new content: " + content))
問題は、Eは、イベントE1と右を発する場合にOがO1イベントを発した後、我々は出力を持っているということです。
new content: O1
new content: E1 // this output is rebundant (cuz we already have newer content O1)
これは何が起こっているの図である。
debounced observableからこの過度の古いイベントを取り除くにはどうすればよいですか?
なぜ 'debounce'演算子を' merge'作業から移動しないのですか? –
@TassosBassoukos、編集イベント(E1)は非常に頻繁です(実際にはキー入力イベントです)ので、私はそれをデバウンスしたいと思います。しかし、私がファイルを開いたとき、私はただちにバウンスすることなくO1イベントを受け取りたいと思っています。 – wilddev
「バージョン管理」は、たとえば時間とともに使用できます。 Observable OイベントとObservable Eイベント(デバウンス前)をマップして、コンテンツと時間の両方を格納します。 Observable EイベントがObservable Oイベントよりも「古い」場合は、比較を行うことができます。 Observable.combineLatest oに移行する必要があります。 – krp