У меня есть код, который выполняет операцию блокировки в цикле 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
?