wil*_*dev 8 java rx-java reactivex
我有两个可观察量:
Observable O(open):在textview中打开一些内容的文件
可观察的E(编辑):在textview中编辑的文件内容
我想去掉E observable,并将它与O observable合并.
obs = Observable.merge(E.debounce(2000, TimeUnit.MILLISECONDS) , O)
.subscribe(content->System.out.println("new content: " + content))
Run Code Online (Sandbox Code Playgroud)
问题是如果E发出事件E1并且在O发出O1事件之后,我们有输出:
new content: O1
new content: E1 // this output is rebundant (cuz we already have newer content O1)
Run Code Online (Sandbox Code Playgroud)
这是一个正在发生的事情的图表:
如何从去抖动的观察中摆脱这个过度的旧事件?
小智 2
你可以试试
Observable.merge(O, O.switchMap(o -> E.debounce()))
.subscribe()
Run Code Online (Sandbox Code Playgroud)
switchMap 的行为与flatMap非常相似,不同之处在于,每当源 Observable 发出新项时,它都会取消订阅并停止镜像从先前发出的项生成的 Observable,并开始仅镜像当前项。
| 归档时间: |
|
| 查看次数: |
703 次 |
| 最近记录: |