【问题标题】:RxScala Observer and SubscriptionRxScala 观察者和订阅
【发布时间】:2015-05-27 09:03:12
【问题描述】:

我刚刚开始使用 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 处理程序会怎样?我会违反任何线程语义吗?

【问题讨论】:

  • 如果您不提供onCompleted 处理程序,onCompleted 将被忽略。如果您没有提供onError 处理程序,但您的代码中发生了异常,则会抛出OnErrorNotImplementedException

标签: observable rx-scala


【解决方案1】:

我查看了 API 文档:

http://reactivex.io/rxscala/scaladoc/#rx.lang.scala.Observable

看起来订阅方法有重载版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 2015-02-24
    • 2016-06-26
    • 1970-01-01
    • 2018-06-11
    • 1970-01-01
    • 2019-02-07
    相关资源
    最近更新 更多