首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJava- cache()是否与replay()相同?

RxJava- cache()是否与replay()相同?
EN

Stack Overflow用户
提问于 2015-09-11 19:09:03
回答 1查看 10.1K关注 0票数 18

我想知道是否有一个cache()操作员可以缓存x个排放,但也可以在指定的时间间隔(例如1分钟)后终止它们。我在找像这样的东西。

代码语言:javascript
复制
Observable<ImmutableList<MyType>> cachedList = otherObservable
    .cache(1, 1, TimeUnit.MINUTES); 

这将缓存一个项目,但会在一分钟后过期并清除缓存。

我做了一些研究,找到了replay运算符。它似乎可以满足这一需求,但我有一些问题。为什么这么热,需要接入?这是否使它与cache()运算符不同?我知道cache()模仿了一个主题,但它不需要连接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-12 17:21:07

cachereplay用于不同的用例。Cache是一个自动连接的replay-everything容器,通常用于长期回放。Replay可以有更多的参数化,可以进行有限的时间/大小的回放,但需要开发人员指定何时开始。autoConnect()操作符允许您将这样的ConnectableObservable实例转换为普通的Observable,一旦订阅者订阅了它们,它就会连接到源。这样,您就可以有一个有界的、自动连接的重播(需要RxJava 1.0.14+):

代码语言:javascript
复制
source.replay(1, TimeUnit.SECONDS).autoConnect().subscribe(...);
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32522017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档