Вам это на самом деле не нужно ...
val data = ArrayList<ItemDetails>()
flatMap
- неправильный оператор здесь:
flatMap { itemResponse -> Observable.just(itemResponse.message) }
вы можете упростить это с помощью map
вместо этого (функция itemResponse -> itemResponse.message
работает только с внутренним значением).
map { itemResponse -> itemResponse.message }
Далее:
.flatMapIterable { data -> data } // here we have Observable<Message>
.flatMap { itemName ->
getItemDetails(itemName).map { imageData ->
ItemData(itemName, imageData)
}
} // Observable<ItemData>
.toList() // Single<List<ItemData>> -> you can use toObservable to get an Observable<List<ItemData>>
Вы можете использовать toList()
вместо того, чтобы вручную создавать и заполнять ArrayList
, это упрощает вещи.