【发布时间】:2021-02-12 23:41:40
【问题描述】:
如何将 Flowable 转换为 Single?或者,如果有另一种方法可以让它在第一个响应之后停止发射,这也是感兴趣的。
我试过了,但它似乎不起作用:
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>!>!>!
【问题讨论】:
-
我建议您熟悉available operators - 这将为您节省大量时间。
-
好吧,我猜你是说我应该使用单一(T defaultItem)?但我不想返回一个 defaultItem。它应该发出单个值或超时并调用 onError。
-
继续查看可用的运算符。
-
好的,我明白了。或者至少它似乎适用于 firstOrError()。谢谢你的建议!你想回答还是我应该回答?我实际上记得你以前的帖子,你想让我做答案,因为你不关心分数。
-
是的,我找到了它,但在你的帮助下(你知道答案)。我觉得有必要问,但是我认为这意味着如果你再次这样回答,这就是你想要的。再次感谢。