订阅时评估startwith&#39的参数

时间:2015-09-16 18:00:22

标签: reactive-programming rx-java

observableEmitingItemsRegularly
.map(this::cacheLastItem) //set the object in lastItem variable
.startWith(lastItem);

在开头总是返回相同的对象:在解释该行时解释的值。

我已经尝试过:

更改

.startWith(lastItem);

.startWith(getLastItem());

当我们初始化observable时调用函数getLastItem(),而不是在我们想要订阅时调用。

非常感谢!

1 个答案:

答案 0 :(得分:2)

您是否尝试过使用Defer

来自文档:

  

延迟在观察者订阅之前不要创建Observable,并且   为每个观察者创建一个新的Observable

.startWith(Observable.defer(() -> Observable.from(getLastItem()));