How to convert rxJava2's Observable to Completable?

左心房为你撑大大i 提交于 2019-12-03 09:38:41

The fluent way is to use Observable.ignoreElements().

Observable.just(1, 2, 3)
.ignoreElements()

Convert it back via toObservable if needed.

You can do something like below.

Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = Completable.fromObservable(observable);

Like on an Observable, you will have to subscribe to the completable to start the asynchronous process that Observable wraps.

More details can be found here in the Java doc for the method.

As I understand all this solutions will work only if Observable call onComplete, which is not enough if you want your result Completable to trigger after first onNext or onError, so for this case I'd recommend this:

Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = observable.firstOrError().ignoreElement()

Use Completable.merge(YourObservable()...

You could use Completable.fromObservable(xx). That is worked fine on my project.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!