尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

SAP UI5 里有没有 RxJS switchMap 的对应能力,以及怎样真正实现 Latest Wins

SAP UI5 里有没有 RxJS switchMap 的对应能力,以及怎样真正实现 Latest Wins 直接给出判断,SAP UI5 自身没有一个名称叫switchMap、并且能够与 RxJSswitchMap一一对应的原生 Operator。SAP UI5 的事件系统、Binding 系统、Promise异步调用以及OData Model都能覆盖switchMap的部分使用场景,但它们并没有组成 RxJS 那种完整的 Observable 管道体系。要在 SAP UI5 里得到真正接近switchMap的效果,需要先明确我们追求的是哪一层语义,是只让最新结果生效,还是连前一个尚未结束的异步任务也真正取消。两者看起来很像,在网络请求、Busy 状态、异常处理和后端负载上却有明显差异。之所以容易把这件事看混,是因为switchMap表面上的行为非常简单。外层 Observable 每产生一个值,switchMap调用映射函数得到一个新的内部 Observable,然后订阅这个内部 Observable。当外层又产生新值,而前一个内部 Observable 还没有完成时,switchMap会取消对旧内部 Observable 的订阅,再转向新的内部 Observable。RxJS 维护者对这一点有很直接的解释,新的值进入switchMap后,旧的内部订阅会执行unsubscribe。但unsubscribe能不能进一步取消 HTTP 请求,要看内部 Observable 有没有把取消订阅与底层请求取消连接起来。把
返回列表