尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SAP UI5 里没有 distinctUntilChanged,但它在模型绑定层已经做了另一种去重判断

SAP UI5 里没有 distinctUntilChanged,但它在模型绑定层已经做了另一种去重判断 SAP UI5 里没有一个和 Angular RxJS 里的distinctUntilChanged()同名、同形态、同语义的 Operator。更准确地讲,SAP UI5 本身不是以 Observable pipeline 为中心设计的框架,它没有把 UI 输入、模型变化、后端请求、控件状态统一抽象成一条可以pipe()的响应式流。因此在 UI5 标准 API 里,通常找不到debounceTime()、distinctUntilChanged()、switchMap()这类 RxJS Operator。SAP UI5 的核心机制是 ManagedObject、Model、Binding、Control Event、Router、EventBus、OData Model 这些对象协作,而不是 RxJS 那种 Observable 加 Operator 链式组合。RxJS 官方源码对distinctUntilChanged()的定义很直接,它会让结果 Observable 发出源 Observable 推来的值,但条件是当前值相对于上一次已经发出的值是不同的,源码注释还写明第一个值总会发出,后续值会和前一个已发出的值比较,默认比较方式是===,也可以传入 comparator 或 keySelector 做自定义比较。(
返回列表