我需要帮助来分组无限流上的项目,而不丢失数据。
组的大小不能大于n个元素。如果在一段时间内没有项目到来,则当前组的大小可能小于n。
尝试以下代码:
Observable.create(observer => {
setTimeout(() => observer.next([1]), 90)
setTimeout(() => observer.next([2, 3]), 120)
setTimeout(() => observer.next([4, 5, 6]), 160)
setTimeout(() => observer.next([7, 8, 9, 10]), 310)
setTimeout(() => observer.next([11]), 360)
})
.flatMap(xs => xs)
.bufferTime(100, 100, 3) // group every 100 ms or by 3, whatever comes first
.takeUntil(Observable.timer(590))
.subscribe(x => console.log(x))它提供了以下结果:
[ 1 ]
[ 2, 3, 4 ]
[]
[ 7, 8, 9 ]
[ 11 ]
[]但我需要:
[ 1 ]
[ 2, 3, 4 ]
[ 5, 6 ]
[]
[ 7, 8, 9 ]
[ 10, 11 ]
[]感谢您的任何帮助
发布于 2017-08-27 09:26:00
多亏了this answer,我自己回答。为了实现我的目标,我需要像这样调用
.bufferTime(100, null, 3)https://stackoverflow.com/questions/45900863
复制相似问题