假设有包含方法的接口:
Observable<Data> makeHttpCall(int param1, boolean param2);
Completable storeInDatabase(Data data);
Completable combinedCall(int param1, boolean param2);实现combinedCall方法的最佳方法是:
似乎在RxJava 1.0中可以执行Completable.merge(可观察的),但是合并似乎不再接受可观察的。
发布于 2017-03-14 09:03:25
首先,我不认为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);
}
});
}https://stackoverflow.com/questions/42781436
复制相似问题