Flowableをシングルに変換するにはどうすればよいですか?または、最初の応答の後でそれが放出を停止する別の方法がある場合は、これも重要です。
私はこれを試しましたが、うまくいかないようです:
_ disposables.add(
repository.getAllSomethings()
.subscribeOn(SchedulerProvider.getInstance().computation())
.observeOn(SchedulerProvider.getInstance().ui())
.toSingle()
.subscribeWith(object : DisposableSingleObserver<List<Something>>() {
override fun onSuccess(t: List<Something>) {
}
override fun onError(e: Throwable) {
}
})
_
getAllSomethings()は_Flowable<List<Something>>
_を返します
上記のコードでは、.subscribeWith()
に赤い下線が引かれ、
_Type parameter bound for E in
fun <E : SingleObserver<in Flowable<List<Something>!>!>!> subscribeWith(observer: E!): E!
is not satisfied: inferred type ! is not a subtype of SingleObserver<in Flowable<List<Something>!>!>!
_
わかりましたので、@ akarnokdのおかげで、コメントでわかるように答えを見つけました。
彼がここで見ることを提案したストレートな答えを与えるのではなく、釣り方を教えてくれた: http://reactivex.io/RxJava/2.x/javadoc/io/reactivex/Flowable.html (本当にそもそもやるべきだった!).
そこを見ると、私の問題を解決するfirstOrError()
が見つかりました。
私がtoSingle()
を呼び出していたオブジェクトはFlowableでしたが、IDEは文句を言いませんでした。それでも上記のリンクを見ると、toSingle()
isn有効なオプションさえありません!