RxScala 观察者和订阅
RxScala Observer and Subscription
我刚刚开始使用 RxScala,遇到了一些示例。我知道有一个 Observable 合约,其中 Observer trait 定义如下:
trait Observer[T] {
def onNext(event: T): Unit
def onError(error: Throwable): Unit
def onCompleted(): Unit
}
我可以使用 Observer 订阅 Observable 事件流。因此,Observer 是为 Observer 特征中的 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 处理程序会怎样?我会违反任何线程语义吗?
我查看了 API 文档:
http://reactivex.io/rxscala/scaladoc/#rx.lang.scala.Observable
看起来订阅方法有重载版本。
我刚刚开始使用 RxScala,遇到了一些示例。我知道有一个 Observable 合约,其中 Observer trait 定义如下:
trait Observer[T] {
def onNext(event: T): Unit
def onError(error: Throwable): Unit
def onCompleted(): Unit
}
我可以使用 Observer 订阅 Observable 事件流。因此,Observer 是为 Observer 特征中的 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 处理程序会怎样?我会违反任何线程语义吗?
我查看了 API 文档:
http://reactivex.io/rxscala/scaladoc/#rx.lang.scala.Observable
看起来订阅方法有重载版本。