我有Observable流,我想将其转换为Completable,我该怎么做?
答案 0 :(得分:62)
流畅的方式是使用Observable.ignoreElements()
。
Observable.just(1, 2, 3)
.ignoreElements()
如果需要,可以通过toObservable
将其转换回来。
答案 1 :(得分:12)
您可以执行以下操作。
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = Completable.fromObservable(observable);
与Observable类似,您必须订阅completable
才能启动Observable
包装的异步进程。
可以找到更多详细信息here in the Java doc for the method。
答案 2 :(得分:0)
使用Completable.merge(YourObservable()...
答案 3 :(得分:0)
您可以使用 Completable.fromObservable(xx)。在我的项目中效果很好。
答案 4 :(得分:0)
据我了解,所有这些解决方案仅在可观察调用onComplete
下才有效,如果您想让结果Completable
在第一个onNext
或onError
之后触发,这是不够的,因此,在这种情况下,我建议您这样做:
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = observable.firstOrError().ignoreElement()