如何在图片中创建观察? Click to see the picture 我想获得点击事件1,3和4并摆脱2因为1,2,3非常接近(彼此之间<200ms)。 如果我有点击事件1,2,3,4,5,6 ................ 7,8,9 .......... 10,我想只得到1,6,7,9,10。因为1,2,3,4,5,6彼此非常接近(比如说&lt; 200ms),我只想得到它们中的第一个和最后一个。 抱歉我的英语不好,很难解释:)
答案 0 :(得分:0)
我相信buffer运营商就是您所需要的。
例如:
Observable.from(events).buffer(1, TimeUnit.SECONDS).
subscribe(objects -> System.out.println(String.format("got {} items", objects.size())));
答案 1 :(得分:0)
使用Debounce运算符根据时间跳过某些事件。这是Debounce运算符的文档。
在此运算符中,每次收到值时都会启动时间窗口。窗口到期后,将发出该值。但是,如果在窗口到期之前收到另一个值,则拒绝前一个值,窗口将重新启动以获取下一个值。
让我们看看下面的简单示例。
Observable.range(0, 10)
.debounce(100, TimeUnit.MILLISECONDS);
在此处发出整数值0-10。假设1在0之后发出20毫秒,在1之后发出120毫秒。
因此,debounce运算符将仅发出1和2,因为0和1发生在时间范围内。而1和2间隔100毫秒。