Я использую RxJava/Kotlin Observable#take()
для получения первых 50 элементов из списка. Но оператор #take()
ведет себя не так, как должен, согласно документам Rx.
В документах Rx #take()
определяется как:
«Испускать только первые n элементов, испускаемых Observable»
У меня есть такая функция:
Как мы видим, аргумент pageSize
равен 50
.
И начальная size
из list
равна 300
После этого #take(50)
применяется к этому Observable
, и в следующей контрольной точке я все еще получаю полный размер список i.e. size = 300
Но just for the check
, если что-то не так с отладчиком или наблюдаемым, я пытался брать только элементы, чье displayName содержит "9", но на этот раз я получаю ожидаемый результат smaller list
с 9
в каждом из их #displayName field
.
Я считаю, что оператор RxJava/Kotlin's #take()
не такой уж сумасшедший, и это просто я.
Observable.take()
считает выбросы наблюдаемого, а не размер испускаемого списка. Поэтому, если вашremoteFollowersService.getFollowers()
выдаст более 50 элементов, он вернет только первые 50 из них. - person iluu   schedule 17.11.2018