監視可能なチェーンにCompletableを挿入したい場合(たとえば、各放出された要素に対して)、それが完了するまで実行およびブロックするCompletableがある場合、どのオプションを選択しますか? (ここでCompletable.complete()
は単なる例です)
.flatMap { Completable.complete().andThen(Observable.just(it)) }
.doOnNext { Completable.complete().blockingAwait() }
他に何か?
.flatMapCompletable { Completable.complete().andThen(Observable.just(it)) } // If you don't want it to return
.flatMap { Completable.complete().andThen(Observable.just(it)) } //Can be used if you want it to return Observable
オプション2では、blockingAwait()
が監視可能なフローによって管理されていないため、完了可能オブジェクトをキャンセルする機能が失われます。
放出された要素を返す必要がない場合は、flatMapCompletable
もあります。
完了可能要素を実行する必要があるが、放出された要素も返す必要がある場合は、オプション1を使用します。