具有树参数的缓冲区运算符计数,跳过和时间跨度

时间:2016-09-05 12:44:44

标签: operators buffer rx-java

我尝试利用缓冲区运算符的两个variantes来缓冲指定时间范围内的项目。但是,问题是我同时想要缓冲项目(比如说10项,速度为5)。

结果我想推送缓冲区(10,5),如果它在时间跨度之前有项目。如果经过这个时间跨度而没有项目通知空缓冲区。

这是否需要新的自定义运营商?

目前我正在使用我不喜欢的解决方法

 Observable<List<Long>> obs = rawObservable
                    .buffer(1000L, TimeUnit.MILLISECONDS)
                    // it is fairly possible that no data is gathered during the buffering time
                    .flatMapIterable(values -> {
                        if(values.isEmpty()) {
                            // no data
                        }
                        return values;
                    })
                    // take values of buffer by 10 items with a pace (shift) of 5 items
                    .buffer(10, 5);

更新

我想在这里实现的是缓冲特定计数内的数据并跳过参数。正如您可能知道的那样,除非已填充,否则不会返回缓冲区。这就是为什么我想要添加特定时间跨度的时间参数,以便在3秒内没有空缓冲区,例如。

0 个答案:

没有答案