Java 如何仅缓冲来自rx的最新排放。在背压期间可观察到
我有一个Java 如何仅缓冲来自rx的最新排放。在背压期间可观察到,java,android,reactive-programming,rx-java,backpressure,Java,Android,Reactive Programming,Rx Java,Backpressure,我有一个rx.Observable,它将任务的进度发送到onNext()。onNext()排放有时会发生得太快,以至于观察者无法跟上,从而导致故障。我只想通过缓冲可观测的的最新排放来处理背压 例如: observeable发射1,而observest接收1 当观察者仍在处理1时,observeable发出2、3和4 Observer完成处理1并开始处理4(减少排放2和3) 这似乎是处理Rx可观察进度的常见情况,因为您通常只关心使用最新进度信息更新UI。然而,我还没有弄明白如何做到这一点 有人
rx.Observable
,它将任务的进度发送到onNext()
。onNext()
排放有时会发生得太快,以至于观察者无法跟上,从而导致故障。我只想通过缓冲可观测的
的最新排放来处理背压
例如:
observeable
发射1,而observest
接收1
- 当观察者仍在处理1时,
observeable
发出2、3和4
Observer
完成处理1并开始处理4(减少排放2和3)
这似乎是处理Rx可观察进度的常见情况,因为您通常只关心使用最新进度信息更新UI。然而,我还没有弄明白如何做到这一点
有人知道如何使用RxJava实现这一点吗?可观察。debounce
听起来像是您需要的。在下面的示例中,仅可在每个200ms窗口中观察到的最新发射将发送给观察者
observable
.debounce(200, TimeUnit.MILLISECONDS)
.subscribe(observer);
onBackPressureLatest
是您的朋友。:)
这会起作用,我认为onBackPressureLatest
更接近原始问题debounce
绑定到给定的时间范围,这对于UI输入之类的事情非常有用。谢谢!那正是我要找的!显然我需要更新RxJava-P作为补充说明,我必须在subscribeOn(Schedulers.io())
和observeOn(AndroidSchedulers.mainThread())
之间调用此运算符才能使其工作。我们能为RxJava2获得此方面的更新吗?我试图使用toFlowable(BackpressureStrategy.LATEST),但它似乎在排队等待所有请求并处理这些请求。