最近我开始使用响应式扩展(Reactive Extensions)来使用 Angular 2 中的客户端观察者(observables)。Rx 的观察者和 dotnet 的事件的概念似乎非常相似。有没有具体的例子说明一个在某些情况下适用而另一个不适用?如果没有,那么 Microsoft 引入 Rx.Net 有没有其他原因,因为观察者是响应式扩展的核心。任何链接或实时示例都可以。相对于异步/等待、任务或线程方面,它是否表现更好?我正在寻找线程/性能方面的差异。
最近我开始使用响应式扩展(Reactive Extensions)来使用 Angular 2 中的客户端观察者(observables)。Rx 的观察者和 dotnet 的事件的概念似乎非常相似。有没有具体的例子说明一个在某些情况下适用而另一个不适用?如果没有,那么 Microsoft 引入 Rx.Net 有没有其他原因,因为观察者是响应式扩展的核心。任何链接或实时示例都可以。相对于异步/等待、任务或线程方面,它是否表现更好?我正在寻找线程/性能方面的差异。
它们是不同的抽象概念。本回答中的所有内容同样适用于JavaScript和C#。
async
/await
允许您异步等待单个异步操作。这个“异步操作”只能完成一次,并返回一个结果。
Observables允许您订阅数据流并对到达该流的数据做出反应。这种订阅模型允许多个数据项随时间而来。