反应式节流阀返回时间跨度内添加的所有项目
给定一个 IObservableThrottle
行为(在添加项目时重置计时器,但让它返回其中添加的所有项目的集合) 。
Buffer
提供了类似的功能,它可以在每个时间跨度或计数上将数据分块到 IList
中,但我每次都需要重置该时间 添加一个项目。
我在这里看到了类似的问题,反应式扩展是否支持滚动缓冲区? ,但答案似乎并不理想,而且有点旧,所以我想知道 Rx-Main 的发行版本现在是否支持此功能。
Given an IObservable<T>
is there a way to use Throttle
behaviour (reset a timer when an item is added, but have it return a collection of all the items added within that time?
Buffer
provides a similar functionality it that it chunks the data up into IList<T>
on every time span or count. But I need that time to reset each time an item is added.
I've seen a similar question here, Does reactive extensions support rolling buffers?, but the answers don't seem ideal and it's a little old so I wondered if the release version of Rx-Main now supports this functionality out the box.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
正如我在另一篇文章中回答的,是的,你可以!使用
Observable
的Throttle
和Window
方法:As I answered in the other post, yes you can! Using the
Throttle
andWindow
methods ofObservable
:我通过添加
Publish
组件修改了 Colonel Panic 的BufferUntilInactive
运算符,这样它也可以与冷可观察量一起正常工作:为了完整起见,我还添加了一个可选的 IScheduler 参数,它配置运行计时器的调度程序。
I amended Colonel Panic's
BufferUntilInactive
operator by adding aPublish
component, so that it works correctly with cold observables too:For completeness I've also added an optional
IScheduler
parameter, which configures the scheduler where the timer is run.它不能与
Observable.BufferWithTimeOrCount一起使用吗?方法(IObservable、TimeSpan、Int32)
?Wouldn't it work with
Observable.BufferWithTimeOrCount<TSource> Method (IObservable<TSource>, TimeSpan, Int32)
?