首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在RxJs 5中将项目分组为大小为n的组?

如何在RxJs 5中将项目分组为大小为n的组?
EN

Stack Overflow用户
提问于 2017-08-27 08:55:58
回答 1查看 230关注 0票数 0

我需要帮助来分组无限流上的项目,而不丢失数据。

组的大小不能大于n个元素。如果在一段时间内没有项目到来,则当前组的大小可能小于n。

尝试以下代码:

代码语言:javascript
复制
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))

它提供了以下结果:

代码语言:javascript
复制
[ 1 ]
[ 2, 3, 4 ]
[]
[ 7, 8, 9 ]
[ 11 ]
[]

但我需要:

代码语言:javascript
复制
[ 1 ]
[ 2, 3, 4 ]
[ 5, 6 ]
[]
[ 7, 8, 9 ]
[ 10, 11 ]
[]

感谢您的任何帮助

EN

回答 1

Stack Overflow用户

发布于 2017-08-27 09:26:00

多亏了this answer,我自己回答。为了实现我的目标,我需要像这样调用

代码语言:javascript
复制
.bufferTime(100, null, 3)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45900863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档