我有一个 rx.Observable
,它将任务的进度发送到 onNext()
。 onNext()
发射有时会发生得如此之快以至于 Observer
无法跟上,导致 backpressure .我想通过仅缓冲来自 Observable
的最新发射来处理背压。
例如:
Observable
发出 1 并且Observer
接收 1。- 当
Observer
仍在处理 1 时,Observable
发出 2、3 , 和 4。 Observer
完成处理 1 并开始处理 4(发射 2 和 3 被丢弃)。
这似乎是在 Rx Observable 中处理进度的常见情况,因为您通常只关心使用最新的进度信息更新您的 UI。但是我一直无法弄清楚如何做到这一点。
有人知道如何使用 RxJava 实现这一点吗?
最佳答案
onBackPressureLatest
是你的 friend 。 :)
http://reactivex.io/RxJava/javadoc/rx/Observable.html#onBackpressureLatest()
关于java - 如何在背压期间仅缓冲来自 rx.Observable 的最新发射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31815989/