我正在使用针对Net 4.0的Microsoft Visual Studio Comunity 2015。我已经通过Nuget安装了以下内容:Rx-Main 2.2.5,Microsoft.Bcl.Async 1.0.168。我需要等待一个观察的,但是当我写在Net 4.0中使用Microsoft.Bcl.Async等待Observable
Await Observable.Return(42)
我得到一个编译错误:
“BC36930 '等待' 要求类型“的IObservable(整型)'有一个合适的GetAwaiter方法。“
需要注意的是,我能够等待一个Task
,在Await TaskEx.FromResult(42)
,而不是可观察到的。我用对象浏览器来检查Rx库,但没有GetAwaiter扩展方法,而Github repo包含在System.Reactive.Linq.Observable类中。有没有办法解决这个问题,或者我应该坚持Await Observable.Return(42).ToTask
?
是的,我可以等待,如果我转换为任务,正如我在我的问题中所述。 Rx [声明](https://blogs.msdn.microsoft.com/rxteam/2012/03/12/reactive-extensions-v2-0-beta-available-now/)Observable可以直接等待,但在我的情况下它不能,甚至没有Observable.FirstAsync - 失败,同样的错误。 – francezu13k50
@ francezu13k50我已经更新了我的答案 - 这不会让你感到高兴,我很害怕... – Slugart
感谢您的回答。我会继续瞄准Net 4.0,因为我需要支持Windows XP。 – francezu13k50