如何为“observeOn”方法创建“Scheduler”?
-
21-12-2019 - |
题
我在 Scala 项目中使用 RxJava,并且需要执行我的 Observable
在一个单独的线程中。我知道为了实现这一目标我需要打电话 observeOn
方法并传递一个实例 rx.lang.scala.Scheduler
作为一个论点。
但我怎样才能创建该实例呢?我没有找到任何明显的实例化方法 rx.lang.scala.Scheduler
特征。例如,我有这样的代码:
Observable.from(List(1,2,3)).observeOn(scheduler)
有人可以提供一个工作的例子吗 scheduler
变量可以解决问题吗?
解决方案
特征是不可实例化的。
您需要使用“已知子类”下列出的特征的子类之一 API文档.
其他提示
所有调度程序都在包中
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)
不隶属于 StackOverflow