如何将 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()