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 可以对源进行节流。
评论