我有一个名为responses
的{{1}}类型的变量,它发出:
Observable[Try[Int]]
,其中Success(n)
是自然数
要么
n
我正在对这个可观察的值进行求和:
Failure(Exception)
印刷声明显示:
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
但是,在这里,var total = -1
val sub = sum.subscribe {
s => {
println("t1 s: " + s)
total = s
}
}
永远不会更新,并且print语句永远不会显示任何内容。
为什么会这样?
为什么事件不再传递?