我有一个 Observables,它发出一些数字,我只想获取最后 N 个元素。
我有以下代码(我使用的是 RxKotlin,它只是 RxJava 的一个包装器):
val list = listOf(1,2,3,4,5,6,7,8,9,10)
Observable.fromIterable(list)
.buffer(3, 1)
.lastOrError()
.subscribe{value -> println(value)}
不幸的是,结果是[10]
,当我仔细观察缓冲区运算符返回的内容时,我看到了:
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
[4, 5, 6]
[5, 6, 7]
[6, 7, 8]
[7, 8, 9]
[8, 9, 10]
[9, 10]
[10]
有没有办法获得最后一个“完整”缓冲区-> [8, 9, 10]
?