Observableストリームがあり、それをCompletableに変換したいのですが、どうすればよいですか?
流fluentな方法は、Observable.ignoreElements()
を使用することです。
Observable.just(1, 2, 3)
.ignoreElements()
必要に応じて、toObservable
を介して変換し直します。
以下のようなことができます。
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = Completable.fromObservable(observable);
Observableと同様に、completable
をサブスクライブして、Observable
がラップする非同期プロセスを開始する必要があります。
詳細は ここでJava doc にあります。
私が理解しているように、このソリューションはObservableがonComplete
を呼び出す場合にのみ機能します。これは、最初のCompletable
またはonNext
の後に結果onError
をトリガーしたい場合は十分ではありません。
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = observable.firstOrError().ignoreElement()
Completable.merge(YourObservable()...を使用.
Completable.fromObservable(xx)を使用できます。それは私のプロジェクトでうまく機能しています。