【发布时间】:2016-08-28 19:09:24
【问题描述】:
我正在尝试获取给定 Observable 的最新值并让它发出
一旦被调用就立即。以下面的代码为例:
return Observable.just(myObservable.last())
.flatMap(myObservable1 -> {
return myObservable1;
})
.map(o -> o.x) // Here I want to end up with a T object instead of Observable<T> object
这不起作用,因为这样做flatMap 将发出myObservable1,而myObservable1
发出到达map。
我不知道做这样的事情是否可能。有没有人知道如何实现这个目标?谢谢
【问题讨论】:
-
你在说什么可观察的?最新是什么意思?
-
myObservable是一个热可观察对象,它以不规则的间隔发出例如:“1”、“2”、“3”。我想要做的是能够在达到return指令时获得myObservable最新值(在我们的例子中为“3”) -
myObservable 是热的还是冷的?
-
看来您仍在以命令式(而非反应式)的方式思考。能不能给个更大的视角?重点是通常,您基于其他可观察对象创建可观察对象。您可以基于 myObservable 创建 lastObservable,它将被阻塞直到 myObservable 结束,然后发出最后一个值。除了订阅这样的端点之外,没有办法摆脱这些流“管”。
-
我曾经在 RxJava Google Group 上问过一个类似的问题——也许 Ben 的回答对你有帮助:groups.google.com/forum/#!searchin/rxjava/mihola/rxjava/…
标签: java rx-java reactive-programming rx-android