简体   繁体   English

如何将rxJava2的Observable转换为Completable?

[英]How to convert rxJava2's Observable to Completable?

我有Observable流,我想将它转换为Completable,我怎么能这样做?

The fluent way is to use Observable.ignoreElements() . 流畅的方法是使用Observable.ignoreElements()

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

Convert it back via toObservable if needed. 如果需要,将其转换回toObservable

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. 就像在Observable上一样,您必须订阅completable才能启动Observable包装的异步进程。

More details can be found here in the Java doc for the method . 有关该方法的Java文档中可以找到更多详细信息。

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调用onComplete时才有效,如果你希望你的结果Completable在第一次onNextonError之后触发是不够的,那么对于这种情况我建议这样:

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

使用Completable.merge(YourObservable()......

You could use Completable.fromObservable(xx) . 您可以使用Completable.fromObservable(xx) That is worked fine on my project. 这对我的项目很好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM