Rx java Rxjava缓存操作符
我想缓存后续订阅的可观察项,但不想缓存错误。Rx java Rxjava缓存操作符,rx-java,Rx Java,我想缓存后续订阅的可观察项,但不想缓存错误。 似乎缓存操作符也缓存一次性文件。如何实现这一点?无法使缓存本身停止缓存终端事件(onError和onCompleted)。但您可以在终端事件发生之前过滤掉它们 我在一篇文章中写了一些处理错误的方法。基本上,您可以使用类似的onerrorrurn()或onerrorrumenext()将这些错误转换为非错误 或者,如果您可以使用并过滤掉任何错误通知。但在功能上,这与使用onerrorrumerenext()和Observable.empty()没有什么
似乎缓存操作符也缓存一次性文件。如何实现这一点?无法使
缓存本身停止缓存终端事件(onError
和onCompleted
)。但您可以在终端事件发生之前过滤掉它们
我在一篇文章中写了一些处理错误的方法。基本上,您可以使用类似的onerrorrurn()
或onerrorrumenext()
将这些错误转换为非错误
或者,如果您可以使用并过滤掉任何错误通知。但在功能上,这与使用onerrorrumerenext()
和Observable.empty()
没有什么不同
例如,您基本上可以这样做:
observable
.onErrorResumeNext(throwable -> Observable.empty())
.cache()
这将过滤掉错误,然后缓存其余的错误。谢谢!但我也想知道,如果我只想在可观察对象完成且没有错误的情况下缓存结果,该怎么办。我的意思是,如果出现错误,缓存将无法工作,它将再次订阅源可观察对象以进行下一次订阅,直到源可观察对象在没有错误的情况下完成。我猜缓存操作员只订阅一次。您可以在缓存
之前粘贴一个重试
,这将允许在出现错误时重新订阅。也许你想研究一下,以确保你不会无限地重新订阅。