2

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

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

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

有人可以提供一个可以解决问题的工作变量示例scheduler吗?

4

2 回答 2

0

特征是不可实例化的。

您需要使用API 文档中“已知子类”下列出的特征的子类之一。

于 2014-06-04T20:43:13.193 回答
0

所有调度程序都在包中

import rx.lang.scala.schedulers._

对于阻塞 IO 操作,使用 IO 调度器

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)
于 2018-07-29T17:52:38.250 回答