首页 > 解决方案 > rxJava3 中的即时调度器在哪里?

问题描述

rxJava 1Scheduler.immediate(),您可以在当前线程上安排工作。在rxJava 3中,我再也找不到这个调度程序了。

有谁知道Scheduler.immediate()rxJava 3 中的替代品是什么?


我的用例

我有一个客户端 API,用于从远程服务器订阅无限的事件流(例如新闻提要)。API 通过我注册的回调通知我事件:

Observable.create(emitter -> apiClient.registerCallback(event -> emitter.onNext(event)))
        .observeOn(Schedulers.immediate())   // I'd like downstream operators to run on current thread
        .map(myFunc);

但是,API 从不同的线程调用我的回调。我希望像myFunc在当前线程(创建 的线程Observable)上运行下游计算,以免阻塞 API 的线程。

标签: javarx-javascheduler

解决方案


AFAIK,在 RxJava 3 中,您可以使用ImmediateThinScheduler来获得相同的效果。
虽然它保存在internal包装中,但您可以使用它。

API 非常简单,如果您不想依赖他们的internal包,您实际上可以自己创建一个。


推荐阅读