RxJava2 - Concat多个observable,如果找到第一个元素,则阻止执行

时间:2017-05-16 09:05:24

标签: reactive-programming rx-java2

我正致力于使用RxJava2

实现具有2级缓存的简单数据提供程序
Source: Memory
Source: FileCache
Source: Network
Completed with val: 1    

目标是在内存缓存中查找对象, 如果没有找到 - 从文件中读取,如果没有找到 - 调用网络获取资源。缓存更新在此示例中并不重要。

执行此代码时,我会看到控制台日志:

{
    "query": {
        "bool": {
            "must": [{
                "term": {
                    "users.user2.firstname": {
                        "value": "sumit"
                    }
                }
            }]
        }
    }
}

尽管内存缓存返回值,但仍会执行文件缓存和网络调用。 我使用rxJava 2,我可以使用哪个运算符来组合源,但是在第一个valueFound上停止执行?我先尝试(默认)并拍摄,到目前为止没有运气

1 个答案:

答案 0 :(得分:0)

实际上,它在rxJava2中的一个错误 - 升级到2.1.0有助于:

Github问题:https://github.com/ReactiveX/RxJava/issues/5100