假设有包含方法的界面:
Observable<Data> makeHttpCall(int param1, boolean param2);
Completable storeInDatabase(Data data);
Completable combinedCall(int param1, boolean param2);
Run Code Online (Sandbox Code Playgroud)
实现combineCall方法的最佳方法是:
似乎在RxJava 1.0中可以执行Completable.merge(Observable),但merge似乎不再接受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);
}
});
}
Run Code Online (Sandbox Code Playgroud)