我是RX的新手,我遇到了“塑造通知流量”的问题。
我想知道如何通过给定的吞吐量通知观察者;也就是说,我希望在自上次“OnNext”调用后经过一段给定时间之前调用“OnNext”方法。
为了完整起见:我希望通知序列中的每个元素。
例如,0.2符号/刻度:
Tick: 0 10 20 30
|---------|---------|---------|
Producer: A---B------C--D-----E-------F
Result: A B C D E F
0 5 11 16 21 28
有没有办法构建可观察对象,或者我必须实现自己的主题?
非常感谢
答案 0 :(得分:5)
是的,只需将每个值转换为异常进程,直到延迟时间才完成,然后将它们连接起来。
var delay = Observable.Empty<T>().Delay(TimeSpan.FromSeconds(2));
var rateLimited = source
.Select(item => Observable.Return(item).Concat(delay))
.Concat();