拓冰建站拓冰建站
首页 / 资讯中心 / 正文

ABAP 里没有 mergeMap,但有几套机制能实现它真正关心的并发映射与结果汇聚

如果我们刚从 RxJS 的mergeMap、concatMap、switchMap这一组 Operator 转到 SAP ABAP,很容易产生一个直觉上的问题,ABAP 有没有一个类似mergeMap的关键字、函数或者标准类,可以把一批输入映射成异步任务,再把这些异步任务产生的结果合并回来。答案可以先压缩成一句话。ABAP 没有一个和 RxJSmergeMap一一对应的 Operator,但经典 ABAP 的asynchronous RFC、并行处理框架,以及较新的CL_ABAP_PARALLEL,能够实现mergeMap最核心的那部分能力,也就是一份输入产生多个独立工作单元,让这些工作单元并发执行,并在完成时收集结果。若工作主要是数据库计算,SAP HANA 自己的并行执行、CDS、AMDP 和 SQLScript 往往又比在 ABAP 应用服务器上手工模拟mergeMap更合理。真正理解两边的对应关系,关键不在于找一个同名 API,而在于拆开mergeMap到底做了什么。RxJS 官方文档对mergeMap的定义非常明确,它会把源 Observable 发出的每一个值交给一个投影函数,这个投影函数返回新的 Observable,之后同时订阅多个内部 Observable,并把它们产生的值合并到一个输出 Observable 中。它还带有并发度参数concurrent
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门