[英]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
在第一次onNext
或onError
之后触发是不够的,那么对于这种情况我建议这样:
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.