RxJava 2.0 - 如何组合Observable和Completable

时间:2017-03-14 08:50:45

标签: java rx-java2

假设有包含方法的界面:

$img = new Imagick('path/to/image.jpg');
$img->setImageFormat('pdf');
$success = $img->writeImage('path/to/document.pdf');

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

  1. 从makeHttpCall
  2. 获取数据
  3. 使用storeInDatabase存储它
  4. return在storeInDatabase完成时完成的完成?
  5. 似乎在RxJava 1.0中可以执行Completable.merge(Observable),但merge似乎不再接受Observable。

1 个答案:

答案 0 :(得分:6)

首先,我不相信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); } }); }

这应该适合你:

IN.API.Raw().url('/logout').method('get');