首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据条件退出rxjava中的Observable.zip

根据条件退出rxjava中的Observable.zip
EN

Stack Overflow用户
提问于 2019-01-29 02:17:53
回答 1查看 417关注 0票数 0

在RXJava中,我有两个观察点,它们是来自2个下行calls.One下行呼叫的响应是一个长轮询呼叫,另一个是短呼叫并立即返回。我使用Observable.zip来组合两个responses.The的响应,下面的代码运行得很好。

代码语言:javascript
复制
Observable
 .zip(observable1, observable2)
 .flatMap(update -> foo(update));

现在我想实现的是,如果短下行调用(observable1)的输出不包含特定值,那么跳过压缩,即不要等待较长下行调用(observable2)的输出。我尝试用下面的方式实现它,但是如果条件为真,它就不会与observable2一起压缩,但它甚至不会发出observable1响应。

代码语言:javascript
复制
Observable finalresponse = observable1
                .takeWhile(obsResponse1 ->  checkIfValueExist(obsResponse1))
                .zipWith(observable2,  (observable1, observable2) -> execute(observable1, observable2))
                .flatMap(update -> main.execute(update));
EN

Stack Overflow用户

发布于 2019-01-29 19:33:15

在压缩包中有一个规则,只有当两个流都发出一个项目时才会返回,所以你需要做的就是过滤或者在observable中返回Observable.empty(),如果你的对象不是你所期望的或者你可以使用过滤器

代码语言:javascript
复制
   Observable
            .zip(Observable.just(1).filter(integer -> integer==1), Observable.just(2).filter(integer -> integer==3),(integer, integer2) -> integer)
            .flatMap(update -> foo(update));
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54408040

复制
相关文章

相似问题

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