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
ですか?