我有一个名为responses
type的变量,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 语句永远不会显示任何内容。
为什么会这样?
为什么事件不再传递?