Reactive Extensions for JavaScript 2.2包含一个可选的组件(rx.async.js),用于异步数据源。它满足了绑定到事件、回调和promise的需要。 对于标准事件,Rx.Observable.fromEvent函数只要求对象持有事件和事件名称。 对于自定义事件,Rx.Observable.fromEventPattern允许传递单独的函数,用于添加和解除事件处理程序。 将promise转换为可观察对象(observable)也十分简单。在构造完promise之后,用Rx.Observable.fromPromise包装一下即可。 对于JavaScript开发者,特别是Node.js开发者来说,回调必然是需要重点考虑的部分。 因此Async RxJS为标准和Node风格的回调提供了包装器。后者假设回调的第一个参数用于传递错误信息。 RxJS的未来 RxJS未来的一个方向是查询表达式解析。和.NET的LINQ一样,开发者可以在运行时对IndexDB和OData这样的数据源创建查询。尽管OData可以应对大多数场景,但这无疑为创建其他LINQ化的提供器打开了大门。 Rx要解决的另一个问题是回压(back pressure)。当传入消息过于频繁而无法处理时,Observer可以对源进行节流。 |