我如何为' observeOn '方法创建' Scheduler '



我在Scala项目中使用RxJava,我需要在一个单独的线程中执行我的Observable。我知道为了实现这一点,我需要在它上调用observeOn方法并传递rx.lang.scala.Scheduler的实例作为参数。

但是我怎么创建那个实例呢?我没有发现任何明显的实例化rx.lang.scala.Scheduler特性的方法。例如,我有这样的代码:

Observable.from(List(1,2,3)).observeOn(scheduler)

有人能提供一个工作scheduler变量的例子,将做的伎俩?

trait是不可实例化的

你需要使用API文档中"已知子类"下列出的trait的一个子类。

所有调度器都在包中

import rx.lang.scala.schedulers._

阻塞IO操作,使用IO scheduler

Observable.from(List(1,2,3)).observeOn(IOScheduler())

对于计算工作,使用计算调度程序

Observable.from(List(1,2,3)).observeOn(ComputationScheduler())

在当前线程上执行

Observable.from(List(1,2,3)).observeOn(ImmediateScheduler())

在新线程上执行

Observable.from(List(1,2,3)).observeOn(NewThreadScheduler())

要在当前线程之后执行当前线程上的工作

Observable.from(List(1,2,3)).observeOn(TrampolineScheduler())

如果你想使用自己的自定义线程池

val threadPoolExecutor = Executors.newFixedThreadPool(2)
val executionContext = ExecutionContext.fromExecutor(threadPoolExecutor)
val customScheduler = ExecutionContextScheduler(executionContext)
Observable.from(List(1,2,3)).observeOn(customScheduler)

相关内容

  • 没有找到相关文章

最新更新