提问人:Alfredo Bejarano 提问时间:6/14/2023 更新时间:6/14/2023 访问量:28
使用来自其他 Observable 的数据将 Callback 转换为 Observable
Transform Callback into Observable with data from other Observable
问:
我是 RxJava 的新手,我有一个关于将回调转换为可观察对象的问题。
我有这个使用回调的函数。
client.loadAsync(body, object : Callback {
override fun onSuccess(response: AwesomeResponse) {
// Successful response!
}
override fun onError(exception: Exception) {
// Error response!
}
})
为此,我使用Single.create
Single.create {
client.loadAsync(body, object : Callback {
override fun onSuccess(response: AwesomeResponse) {
it.onSuccess(response)
}
override fun onError(exception: Exception) {
it.onError(exception)
}
})
}
问题来自参数,要构建它,我需要来自另一个可观察对象的数据。body
这就是我现在正在做的事情。
otherObservable.doOnNext { dto ->
val body = clientBody(id = dto.Id)
Single.create {
client.loadAsync(body, object : Callback {
override fun onSuccess(response: AwesomeResponse) {
it.onSuccess(response)
}
override fun onError(exception: Exception) {
it.onError(exception)
}
})
}
.subscribeOn(scheduler)
.subscribe(
{ uiReportSubject.onNext(it) },
{},
compositeDisposable
)
}
.subscribeOn(scheduler)
.subscribe()
我通过订阅对象将数据接收到我的 UI 中,该对象是一个uiReportSubject
BehaviourSubject
我的问题是,这是正确的方法吗?或者有更好的方法可以做到这一点吗?像运算符(喜欢)或类似的东西?map
谢谢
答: 暂无答案
评论
otherObservable.flatMap(dto -> ... return Single.create(...))
flatMapSingle