Я сейчас живу rxjava и застреваю с оператором окна. Я тестирую следующий простой код на своем устройстве Android и получаю запутывающие результаты.Rxjava window() запутывающие результаты
Код:
Observable.interval(100, TimeUnit.MILLISECONDS)
.take(10)
.window(250, 100, TimeUnit.MILLISECONDS)
.flatMap(o -> o.toList())
.subscribe(o -> Log.d(TAG, "object: "+o));
Иногда я получаю то, что выглядит как правильные результаты для меня:
object: [0, 1]
object: [0, 1, 2]
object: [1, 2, 3]
object: [2, 3, 4]
object: [3, 4, 5]
object: [4, 5, 6]
object: [5, 6, 7]
object: [6, 7, 8]
object: [7, 8, 9]
object: [8, 9]
object: [9]
Но иногда, я получаю что-то вроде
object: [0, 1]
object: [0, 1, 2]
object: [1, 2, 3]
object: [2, 3, 4]
object: [3, 4, 5]
object: [4, 5, 6]
object: [6, 7]
object: [6, 7, 8]
object: [7, 8, 9]
object: [8, 9]
object: [9]
Может кто-нибудь объяснить, почему результаты для этого кода отличаются?