J'ai besoin d'aide pour regrouper des éléments sur un flux infini sans perte de données.Comment grouper des éléments dans des groupes de taille n dans RxJs 5?
La taille des groupes ne doit pas être supérieure à n éléments. Si pendant un certain temps aucun élément n'est apparu, la taille du groupe actuel peut être inférieure à n.
Essayer ce code:
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))
il donne le résultat suivant:
[ 1 ]
[ 2, 3, 4 ]
[]
[ 7, 8, 9 ]
[ 11 ]
[]
Mais j'ai besoin:
[ 1 ]
[ 2, 3, 4 ]
[ 5, 6 ]
[]
[ 7, 8, 9 ]
[ 10, 11 ]
[]
Toute aide appréciée