Пользователь buffer
периодически собирает предметы, испускаемые Обсерваторией, в связки и испускает эти связки, а не испускает предметы по одному
val list = arrayOf("1", "2", "3", "4", "5")
Observable.fromIterable(list.asIterable())
.buffer(4)
.map { stringList: MutableList<String> ->
println("insideMap -> $stringList")
return@map "wow $stringList"
}
.subscribe { value: String -> println("OnResult $value")}
//Output
insideMap -> [1, 2, 3, 4]
OnResult wow [1, 2, 3, 4]
insideMap -> [5]
OnResult wow [5]
Оператор Buffer преобразует Наблюдаемое, которое испускает элементы, в Наблюдаемое, которое испускает буферизованные коллекции этих предметов. В различных языковых реализациях Buffer существует несколько вариантов, которые отличаются тем, как они выбирают, какие элементы идут в какие буферы.
Обратите внимание, что если исходная Наблюдаемая выдает уведомление onError , Буфер немедленно передаст это уведомление без предварительной отправки буфера, который находится в процессе сборки, даже если этот буфер содержит элементы, которые были отправлены Наблюдаемый источник до того, как он выпустил уведомление об ошибке.