这就是情况。假设我正在某处填充一个Collection。每次添加一个元素时,IObservable会为其订阅者调用OnNext()。
现在,集合将被填满。(我在读一些东西,然后我完成了阅读...什么的)。此时,订阅者将调用OnComplete()。
然而,用户不会观察这种方法。相反,他将调用一个异步方法,并等待它......他并不太关心自己读了什么,他只关心自己已经完成了阅读。
因此,基本上,我希望从一个IObservable中获得一个任务,该任务在IObservable为其订阅者调用OnComplete()时返回。我特别希望用户不使用观察者,而只是知道在await调用后发生的任何事情都将在填充集合之后发生。
也许ToTask()方法可以做到这一点?我无法通过文档来确定。
现在,集合将被填满。(我在读一些东西,然后我完成了阅读...什么的)。此时,订阅者将调用OnComplete()。
然而,用户不会观察这种方法。相反,他将调用一个异步方法,并等待它......他并不太关心自己读了什么,他只关心自己已经完成了阅读。
因此,基本上,我希望从一个IObservable中获得一个任务,该任务在IObservable为其订阅者调用OnComplete()时返回。我特别希望用户不使用观察者,而只是知道在await调用后发生的任何事情都将在填充集合之后发生。
也许ToTask()方法可以做到这一点?我无法通过文档来确定。
IEnumerable<T>
、IObservable<T>
和Task<T>
之间切换。每次更改都会引入代码中可能过早强制执行和/或引入意外行为的点。Observables比Tasks更强大和表达力更强,因此最好保持在Observables中。 - Enigmativity