java - 如何知道下游订阅者何时调用 onNext()?

标签 java reactive-programming rx-java

所以我有一个Observable。我想知道什么时候 每个 下游订阅者 onNext 调用将要进行,这既是为了测量每个下游订阅者花费的时间量,也是为了背压目的。

Observable.lift 让我完成了一半 - 我可以用我自己的 Subscriber 包装每个单独的订阅者,如下例所示。当所有下游订阅者完成他们的 onNext 调用时,这不会通知我,但我不必自己做一些簿记。

eventObservable.lift(subscriber -> new Subscriber<Event>() {
        @Override
        public void onStart() {
            request(1);
        }

        @Override
        public void onCompleted() {
            subscriber.onCompleted();
        }

        @Override
        public void onError(Throwable e) {
            subscriber.onError(e);
        }

        @Override
        public void onNext(Event event) {
            subscriber.onNext(event);
            request(1);
        }
    });

有没有好的方法(甚至是聪明的方法)?

提前致谢!

最佳答案

没有像 doOnNext 这样的 doOnXXX 方法 http://reactivex.io/RxJava/javadoc/rx/Observable.html#doOnNext%28rx.functions.Action1%29足够你的目的?这样你就可以拦截 onNext 和其他事件。

关于java - 如何知道下游订阅者何时调用 onNext()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28781406/

相关文章:

java - 创建以字符串形式出现的类的新实例并更新集合方法

spring-boot - 响应式(Reactive)编程 : Spring WebFlux: How to build a chain of micro-service calls?

java - 如何链接多个 RxJava 的 groupBy() 方法,例如 groupBy().groupBy()

java - RecyclerView 中的 SmoothScroller

java - Swing 动画优化

java - kotlin 中是否有任何方法可以获取 "Int"中特定索引处的数字?

c# - 从 observablecollection 创建 observable<bool>

java - 将字符串转换为数组再转换为 Observable 中的对象

android - 从 rx java 表达式转换为 lambda

Android:使用 repeatWhen、takeUntil 和 filter with retrofit 使用 rx-java 无限滚动