ras*_*asx 0 c# system.reactive observer-pattern
有没有一个例子向我展示Observable.Count<TSource> Method实际如何运作?我想出的例子似乎返回一个包含在observable中的计数而不是预期的计数.
例如,我希望1从这里返回:
System.Diagnostics.Debug.WriteLine((Observable.Return<string>("Hello world!")).Count());
Run Code Online (Sandbox Code Playgroud)
将来会1被退回(因为,毕竟它是一个异步序列)?或者我错过了一些基本的东西?在撰写本文时,我实际上假设只要结果被推出,.Count()它将返回结果T并随着时间的推移而增长.真?是.
Rx中的聚合运算符与LINQ中的运算方式略有不同 - 它们不会立即返回值,它们返回未来结果(即,只有Observable完成后我们才能知道最终的Count是什么).
所以,如果你写:
Observable.Return("foo").Count().Subscribe(x => Console.WriteLine(x));
>>> 1
Run Code Online (Sandbox Code Playgroud)
因为,毕竟它是一个异步序列
这实际上并不完全正确.在这里,只要有人打电话,一切都将立即运行Subscribe.上面的代码没有任何异步,没有额外的线程,一切都发生在订阅上.
| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |