1

我有一个名为responsestype的变量,Observable[Try[Int]]它发出:

Success(n), 其中n是自然数或 Failure(Exception)

我正在总结这个 observable 的值,如下所示:

val sum = responses.foldLeft(0) { (acc, tn) =>
  println("t1 tn: " + tn)
  println("t1 acc: " + acc)
  tn match {
    case Success(n) => acc + n
    case Failure(t) => acc // Failures are 0
  }
}

打印语句显示了这一点:

t1 tn: Success(1)
t1 acc: 0
t1 tn: Success(1)
t1 acc: 1
t1 tn: Success(1)
t1 acc: 2
t1 tn: Success(2)
t1 acc: 3
t1 tn: Failure(java.lang.Exception)
t1 acc: 5
t1 tn: Success(3)
t1 acc: 5
t1 tn: Success(3)
t1 acc: 8
t1 tn: Success(3)
t1 acc: 11

紧接着,我试图从 observable 中得到总和,如下所示:

var total = -1
val sub = sum.subscribe {
  s => {
    println("t1 s: " + s)
    total = s
  }
}

但是,这里total永远不会更新,并且 print 语句永远不会显示任何内容。

为什么会这样?

为什么事件不再传递?

4

0 回答 0