在一个 SAP Fiori Elements 的 Object Page 扩展里,经常会碰到这样一类需求。页面的 OData Binding 会持续产生事件,路由可能被多次匹配,某个控件的press可能发生很多次,Component 内部的 EventBus 事件也可能被反复发布,但某段业务逻辑只允许在第一次事件出现时执行一次。熟悉 RxJS 的开发人员看到这种需求,很自然会想到take(1)。
问题就在这里,SAP UI5 能不能直接写出类似下面这样的东西。
source$.pipe(take(1)).subscribe(handleValue