通过使用Observer,我尝试构建代码,它:
1.生成一些(随机)值;
2.组合这些值;
3.如果某个人的组合值超过了阈值,那么这个值必须被传递给另一个处理程序,所以我希望得到的值能够被返回以供进一步使用
我的代码:
//generate
val o: Observable[Int] = Observable.repeatEval(Random.nextInt(10))
//handle
val f = o.foldLeft(0) { (acc, el) =>
if (acc < 15) {
el + acc
} else {
println("handled " + acc)
acc
}
}
//use handled
.flatMap{res =>
println("mapped " + res + 1)
Observable(res + 1)
}
但没有传递给flatMap方法。输出如下所示:
0
3
7
11
12
handled 20
我哪里做错了?
1条答案
按热度按时间8i9zcol21#
您希望使用
mapAccumulate
+collect
。像这样使用它:
正如我常说的,Scaladoc是您的朋友。