首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJava2同时执行Completable和Observable,并处理这两者的结果

RxJava2同时执行Completable和Observable,并处理这两者的结果
EN

Stack Overflow用户
提问于 2019-09-04 00:05:38
回答 1查看 337关注 0票数 0

我有一个可完成的和可观察的,可以发射项目的。我必须将它们组合在一起。某种Observable.combineLatest,但具有可完备性和可观察性。所以逻辑是:如果Observable首先发出项,当complete不完整时,它应该等待complete (而不是忽略),如果complete是完整的,那么应该处理Observable中的项。

我尝试将Completable转换为Observable,但该Observable不发出onNext,因此Observable.zip、Observable.combineLatest等不起作用。

适用于我的代码:

myCompletable.andThen(myObservable).subscribe()

但我不会异步调用completable和observable。我只是等待可完成的completes.Is,是否可以异步运行可完成的和可观察的,并在Complitable编译时处理可观察的项?

EN

回答 1

Stack Overflow用户

发布于 2019-09-05 01:24:22

您可以将myCompletable转换为Observable并使用.defaultIfEmpty来保证至少会发出一个项。检查此示例:

代码语言:javascript
复制
val myObservable: Observable<Long> = ...
val myCompletable: Completable = ...

Observable.combineLatest(
    myObservable
    myCompletable.toObservable<Long>().defaultIfEmpty(0L),
    BiFunction<Long, Long, Long> { a, b -> a}
)
.subscribe()

请注意,按照注释中的建议,只有myObservable发出的最后一项将保留在此方法中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57775254

复制
相关文章

相似问题

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