我有一个Observable,它正在侦听数据库并在将其添加到db时发出项目。当我订阅这个observable时,它会逐个在db中快速发出已存储的项目。我的问题是我可以创建observable来收集以一定间隔(例如100毫秒)发出的项目到列表并发出(或返回一些函数,如doOnNext)整个列表和单独的项目,如果有更大的发射间隔?
提前感谢!
答案 0 :(得分:6)
您正在寻找buffer运营商:
返回一个Observable,它发出从源Observable收集的项目的缓冲区。生成的Observable发出连接的,非重叠的缓冲区,每个缓冲区都由timespan参数指定。
每100毫秒发出一次收集的物品:
dbObservable
.buffer(100, TimeUnit.MILLISECONDS)
... // here is your Lists