【问题标题】:RxJava return to the previous schedulerRxJava 返回上一个调度器
【发布时间】:2017-11-19 00:09:12
【问题描述】:

有没有办法让 RxJava observable 在其他调度程序完成工作后将其当前调度程序更改为以前的调度程序?

Observable
        .just(null)

工作转移到 io 调度器

        .subscribeOn(Schedulers.io())

工作转移到计算调度器

        .flatMap(__ -> Observable.timer(30, TimeUnit.MILLISECONDS))

所以,这里我不想明确要求在 io 线程上进行观察,而是返回到之前的调度程序(即 io)。

        .subscribe(__ -> System.out.println(Thread.currentThread().getName()));

rxjava: 1.1.8

【问题讨论】:

  • subscribeOn 表示操作员将订阅该调度程序上的上游 Observable。 AFAIK 没有办法只影响上游。或者你可以在 Observable 中使用 subscribeOnobserveOn 的组合。

标签: rx-java


【解决方案1】:

您想返回确切的线程还是相同的调度程序?前者在 1.x 中不可用,但可以通过 extensions library 在 2.x 中使用。后者需要使用observeOn(Schedulers.io())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    相关资源
    最近更新 更多