gpt4 book ai didi

rx-java - Rxjava缓存操作符

转载 作者:行者123 更新时间:2023-12-01 10:36:07 25 4
gpt4 key购买 nike

我想为后续订阅缓存可观察项,但我不想缓存错误。似乎缓存运算符也缓存可抛出的对象。我怎样才能做到这一点?

最佳答案

没有办法让 cache 本身停止缓存终端事件(onErroronCompleted)。但是您可以在终端事件发生之前过滤掉它们。

我在一篇文章中写了一些处理错误的方法 here .基本上,您可以使用 the catch operators 之一像 onErrorReturn()onErrorResumeNext() 将这些错误转换为非错误。

或者,如果您可以使用 materialize() + dematerialize()并过滤掉任何错误通知。但在功能上,这与将 onErrorResumeNext()Observable.empty() 一起使用没有什么不同。


举个例子,你基本上会做这样的事情:

observable
.onErrorResumeNext(throwable -> Observable.empty())
.cache()

这会过滤掉错误,然后缓存其余部分。

关于rx-java - Rxjava缓存操作符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35197321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com