我有在 while 循环中执行阻塞操作的代码(从服务器下载一些数据)。客户不知道每一步要返回多少物品。下载 N 个项目时循环中断。
val n = 10
val list = ArrayList<T>()
while (list.size < n) {
val lastItemId = list.last()?.id ?: 0
val items = downloadItems(lastItemId)
list.addAll(items)
}
downloadItems
执行阻塞 HTTP 调用并返回列表。现在让我们假设downloadItems
更改和新的返回类型是Observable<Item>
. 我如何更改代码以使用 RxJava 而无需执行类似的操作blockingGet
?