2017-08-27 55 views
0

我需要幫助將無限數據流上的項目分組而不會丟失數據。如何在RxJs 5中將項目分組爲大小爲n的組?

組的大小必須不大於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 ] 
[] 

任何幫助表示讚賞

回答

1

感謝this answer我自己回答。 要實現我的目標,我需要像這樣打電話

.bufferTime(100, null, 3) 
相關問題