Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RxJava-缓存()与replay()相同吗?_Java_Reactive Programming_Rx Java - Fatal编程技术网

RxJava-缓存()与replay()相同吗?

RxJava-缓存()与replay()相同吗?,java,reactive-programming,rx-java,Java,Reactive Programming,Rx Java,我想知道是否有一个cache()操作符可以缓存x个排放量,但也可以在指定的时间间隔(例如1分钟)后使其过期。我在找像 Observable<ImmutableList<MyType>> cachedList = otherObservable .cache(1, 1, TimeUnit.MINUTES); Observable cachedList=otherObservable .缓存(1,1,时间单位为分钟); 这将缓存一个项目,但会在一分钟后过期并清除

我想知道是否有一个
cache()
操作符可以缓存x个排放量,但也可以在指定的时间间隔(例如1分钟)后使其过期。我在找像

Observable<ImmutableList<MyType>> cachedList = otherObservable
    .cache(1, 1, TimeUnit.MINUTES); 
Observable cachedList=otherObservable
.缓存(1,1,时间单位为分钟);
这将缓存一个项目,但会在一分钟后过期并清除缓存


我做了一些调查,找到了接线员。它似乎可以满足这个需求,但我有一些问题。为什么它很热,需要连接?这是否使它与
cache()
操作符不同?我知道
cache()
模拟主题,但它不需要连接

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


您可能应该提到,
autoconnect
是一个实验,它现在更有可能成为标准API:
source.replay(1, TimeUnit.SECONDS).autoConnect().subscribe(...);