SAP UI5 没有 fromEvent,但它有一套更适合 Fiori 应用的事件模型
SAP UI5 里没有一个和 Angular 项目里常用的 RxJS fromEvent 完全同名、完全同语义的内置 Operator。更准确地讲,fromEvent 也不是 Angular 自己提供的东西,而是 RxJS 提供的创建函数。RxJS 官方文档对 RxJS 的定位是用 Observable 来组合异步和回调式代码,而 fromEvent 的作用是从 DOM 事件、Node.js EventEmitter 事件或类似事件源创建 Observable。也就是说,它的思路是把事件源转成一条可组合的数据流,然后继续接 map、filter、debounceTime、distinctUntilChanged、switchMap 等操作。(rxjs.dev)把这个判断放到 SAP UI5 的世界里看,答案就不能只停在「没有」两个字。SAP UI5 的设计历史、运行时模型和事件处理方式都和 Angular 加 RxJS 的组合不一样。UI5 控件不是围绕 Observable 来设计的,而是围绕 ManagedObject、Control、EventProvider、数据绑定、模型事件、路由事件、控件生命周期来组织。官方 API 里,sap.ui.base.EventProvider 被描述为给对象提供事件能力,包括 attach 和 detach 事件处理函数,并在事件触发时通知监听者。很多 UI5 对象都继承或借用了这套事件能力,例如 ManagedObject、Binding、Router、Controller、ODataModel 相关对象。(