假设有一个包含方法的接口(interface):
Observable<Data> makeHttpCall(int param1, boolean param2);
Completable storeInDatabase(Data data);
Completable combinedCall(int param1, boolean param2);
实现 combinedCall 方法的最佳方式是什么:
- 从 makeHttpCall 获取数据
- 使用 storeInDatabase 存储它
- 返回在 storeInDatabase 完成时完成的 Completable?
似乎在 RxJava 1.0 中可以执行 Completable.merge(Observable) 但合并似乎不再接受 Observable。
最佳答案
首先我不相信merge
非常适合您的需求,因为 storeInDatabase
必须对 makeHttpCall
的结果执行而不是平行于它。
这应该适合你:
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);
}
});
}
关于java - RxJava 2.0 - 如何结合 Observable 和 Completable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42781436/