如何将 rxJava2 的 Observable 转换为 Completable?
How to convert rxJava2's Observable to Completable?
我有 Observable 流,我想将它转换为 Completable,我该怎么做?
使用Completable.merge(YourObservable()...
您可以执行如下操作。
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = Completable.fromObservable(observable);
与 Observable 一样,您必须订阅 completable
才能启动 Observable
包装的异步进程。
可以找到更多详细信息 here in the Java doc for the method。
流畅的方法是使用Observable.ignoreElements()
。
Observable.just(1, 2, 3)
.ignoreElements()
如果需要,通过 toObservable
将其转换回来。
您可以使用 Completable.fromObservable(xx)。这在我的项目中运行良好。
据我所知,所有这些解决方案仅在 Observable 调用 onComplete
时才有效,如果您希望结果 Completable
在第一个 onNext
或 [=14] 之后触发,这还不够=],所以对于这种情况,我建议这样做:
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = observable.firstOrError().ignoreElement()
我有 Observable 流,我想将它转换为 Completable,我该怎么做?
使用Completable.merge(YourObservable()...
您可以执行如下操作。
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = Completable.fromObservable(observable);
与 Observable 一样,您必须订阅 completable
才能启动 Observable
包装的异步进程。
可以找到更多详细信息 here in the Java doc for the method。
流畅的方法是使用Observable.ignoreElements()
。
Observable.just(1, 2, 3)
.ignoreElements()
如果需要,通过 toObservable
将其转换回来。
您可以使用 Completable.fromObservable(xx)。这在我的项目中运行良好。
据我所知,所有这些解决方案仅在 Observable 调用 onComplete
时才有效,如果您希望结果 Completable
在第一个 onNext
或 [=14] 之后触发,这还不够=],所以对于这种情况,我建议这样做:
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = observable.firstOrError().ignoreElement()