web-dev-qa-db-ja.com

rxJava2のObservableをCompletableに変換する方法は?

Observableストリームがあり、それをCompletableに変換したいのですが、どうすればよいですか?

23
Stepango

流fluentな方法は、Observable.ignoreElements()を使用することです。

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

必要に応じて、toObservableを介して変換し直します。

67
akarnokd

以下のようなことができます。

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

Observableと同様に、completableをサブスクライブして、Observableがラップする非同期プロセスを開始する必要があります。

詳細は ここでJava doc にあります。

12
Praveer Gupta

私が理解しているように、このソリューションはObservableがonCompleteを呼び出す場合にのみ機能します。これは、最初のCompletableまたはonNextの後に結果onErrorをトリガーしたい場合は十分ではありません。

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

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

0
Nish

Completable.fromObservable(xx)を使用できます。それは私のプロジェクトでうまく機能しています。

0
DomonLee