首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RxJava 2.0 -如何将可观察性和可完成性结合起来

RxJava 2.0 -如何将可观察性和可完成性结合起来
EN

Stack Overflow用户
提问于 2017-03-14 08:50:45
回答 1查看 3.1K关注 0票数 3

假设有包含方法的接口:

代码语言:javascript
复制
Observable<Data> makeHttpCall(int param1, boolean param2);

Completable storeInDatabase(Data data);

Completable combinedCall(int param1, boolean param2);

实现combinedCall方法的最佳方法是:

  1. 从makeHttpCall中获取数据
  2. 使用storeInDatabase存储它
  3. 当storeInDatabase完成时,返回完成的可完成性?

似乎在RxJava 1.0中可以执行Completable.merge(可观察的),但是合并似乎不再接受可观察的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 09:03:25

首先,我不认为merge适合您的需要,因为storeInDatabase必须在makeHttpCall的结果上执行,而不是并行的。

这应该适用于你:

代码语言:javascript
复制
Completable combinedCall(int param1, boolean param2) {
    return makeHttpCall(param1, param2)
            .flatMapCompletable(new Function<Data, CompletableSource>() {
                @Override
                public CompletableSource apply(@NonNull Data d) throws Exception {
                    return storeInDatabase(d);
                }
            });
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42781436

复制
相关文章

相似问题

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