gpt4 book ai didi

java - RxJava 2.0 - 如何结合 Observable 和 Completable

转载 作者:行者123 更新时间:2023-12-03 15:18:58 24 4
gpt4 key购买 nike

假设有一个包含方法的接口(interface):

Observable<Data> makeHttpCall(int param1, boolean param2);

Completable storeInDatabase(Data data);

Completable combinedCall(int param1, boolean param2);

实现 combinedCall 方法的最佳方式是什么:

  1. 从 makeHttpCall 获取数据
  2. 使用 storeInDatabase 存储它
  3. 返回在 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/

24 4 0