我刚开始使用RxScala并且遇到了一些例子 . 我知道有一个Observable合约,Observer特征的定义如下:
trait Observer[T] {
def onNext(event: T): Unit
def onError(error: Throwable): Unit
def onCompleted(): Unit
}
我可以使用Observer订阅Observable事件流 . 因此Observer就是为Observer trait中的3个方法提供实现的任何东西 .
现在,在以下示例中:
object TimedObservable extends App {
val o = Observable.timer(1.second)
o.subscribe(secs => println(" seconds is " + secs))
}
我正在创建一个Long类型的Observable事件,在订阅调用中,我只覆盖了onNext . 那么onError和onCompleted呢?
编辑:如果我不提供onError和onCompleted处理程序会发生什么?我会违反任何线程语义吗?
1 回答
我看了一下API文档:
http://reactivex.io/rxscala/scaladoc/#rx.lang.scala.Observable
看起来有subscribe方法的重载版本 .