我们如何在观察未完成时在 IObservable 上使用组函数<T>,或者在热的、长时间运行的可观察对象上使用组函数



我有以下可观察的

IObservable<int> observable = Observable.Range(0, 10);

我有以下订阅

observable.Subscribe(v => Console.WriteLine("Received value: " + v));
observable.Sum().Subscribe(s => Console.WriteLine("Sum so far: " + s));

我想要的输出如下

接收值:0
到目前为止的总和: 0
接收值:1
到目前为止的总和: 1
接收值:2
到目前为止的总和: 3


但我实际得到的是收到系列最终值后的总和。

的实际目标是将其放入拼图中,其中我有一个热的,连续运行的可观察值,给我十进制值,我必须订阅()当前的平均值和总和值。

任何这方面的帮助将不胜感激。

使用 Observable.Scan

var observable = Observable.Range(0, 10);
observable
    .Subscribe(x => Console.WriteLine("Received value: " + x));
observable
    .Scan(0, (sum, x) => sum + x)
    .Subscribe(sum => Console.Writeline("Sum so far: " + sum));

Observable.Sum只会发出一个令牌,即整个完成序列的总和。 Observable.Scan每次从源接收令牌时都会发出令牌。

相关内容

  • 没有找到相关文章

最新更新