【发布时间】:2018-12-21 13:19:26
【问题描述】:
我正在开发 Android 应用程序。 我有一个关于 RxJava2 的问题。 这是一个例子:
我有一个用户 ID 列表。 (1, 2, 3, 4, 5, ...)
val userIds = listOf(1, 2, 3, 4, 5)
我想列出用户数据。 要获取用户数据,我应该调用“REST API”。 (改造) 在这种情况下,我应该请求多个。
GET /users/1
GET /users/2
GET /users/3
GET /users/4
GET /users/5
...
fun getUsers(userIds: List<String>, callback: UsersLoadedCallback) {
var userList = List<User>()
val userObservables = mutableListOf<Observable<User>>()
userIds.forEach {
userObservables.add(UserService.getUser(it))
}
Observable.merge(userObservables)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
userList.add(it)
}
}
我知道这是错误的。 但我不知道如何解决这个问题。 “加入”、“合并”、“压缩”? 我该怎么办?
【问题讨论】:
-
创建
getUser()observables 列表并使用Observable.fromIterable()和.forEach()构造来读出每个订阅
标签: android kotlin rx-java retrofit rx-java2