Я использую RxJava / Kotlin Observable#take()
, чтобы получить первые 50 элементов из списка.Но оператор #take()
ведет себя не так, как следует в соответствии с документами Rx.
В документах Rx #take()
определяется как:
"Излучать только первые n элементов, излучаемых наблюдаемой" *
![enter image description here](https://i.stack.imgur.com/q4oTZ.png)
У меня есть такая функция:
Как мы видим, аргумент pageSize
равен 50
![enter image description here](https://i.stack.imgur.com/DbyoV.png)
И начальное size
из list
равно 300
![enter image description here](https://i.stack.imgur.com/mK0Ai.png)
После этого #take(50)
равноприменяется к этому Observable
и на следующей точке останова я все еще получаю полный размер список i.e. size = 300
![enter image description here](https://i.stack.imgur.com/hpBBD.png)
Но just for the check
, если что-то не так с отладчиком или наблюдаемым, я пытался взять только элементы, displayName которых содержит «9», но на этот раз я получаю ожидаемый результат smaller list
с 9
в каждом из #displayName field
.
![enter image description here](https://i.stack.imgur.com/zZOK5.png)
Я считаю, что оператор RxJava/Kotlin's #take()
не такой уж и сумасшедший, а только я.