从 RxJS from 到 SAP UI5 数据流,UI5 没有同名 API,却有一套完全不同的异步与绑定哲学

从 RxJS from 到 SAP UI5 数据流,UI5 没有同名 API,却有一套完全不同的异步与绑定哲学
在一个稍微复杂一点的 SAP UI5 项目里,Controller 往往同时面对几种完全不同的数据来源。OData 请求返回异步结果,JSONModel里放着数组,sap.m.Button不断产生press事件,路由器产生导航事件,某些浏览器 API 返回Promise,有时还会接入 WebSocket。做过 Angular 加 RxJS 开发后,很自然会产生一个念头,能不能像 RxJS 那样,把这些异构的数据源先统一变成Observable,后面的代码全部使用一套流式处理方式。这正是理解 RxJSfrom与 SAP UI5 关系时最合适的切入口。结论可以先摆出来,SAP UI5 没有一个与 RxJSfrom一一对应的内置 API,也没有一个负责把Promise、数组、Iterable等各种数据源统一转换成 UI5 Observable 的标准机制。原因并不是 UI5 缺少异步处理能力,而是两套框架在架构层选择了不同的数据流抽象。RxJS 把Observable当成中心抽象,SAP UI5 则把Model、Binding、Context、EventProvider、Promise和控件生命周期组合起来解决同一类工程问题。RxJS 官方明确把自己定义成利用 Observable sequence 组织异步与事件程序的库,

最新新闻

日新闻

周新闻

月新闻