ABAP 里没有 withLatestFrom,但可以完整实现它的主触发与最新快照语义
在一个销售订单保存动作里,订单金额是当前动作带进来的主数据,汇率、税率、客户风险等级和功能开关则是系统刚刚掌握的最新状(RxJS)不应该单独生成一笔订单处理结果。这个场景和 RxJS 的withLatestFrom非常接近,也正好说明它和普通JOIN、combineLatest、异步等待之间的区别。直接回答问题,ABAP 标准语言没有一个名为withLatestFrom的内建 Operator,也没有 RxJS 那套可直接写成source-pipe( ... )的 Observable 管道。不过,它的语义可以在 ABAP 中完整实现,而且实现并不复杂。真正需要保留的不是方法名,而是三条运行规则,主输入负责触发,辅助输入只负责保存最新状态,所有必需的辅助状态都准备好之后,主输入到来才产生组合结果。RxJS 官方文档对withLatestFrom的定义很明确。每当源 Observable 发出值时,操作符把这个源值与其他输入 Observable 的最新值组合起来。其他输入单独发值时不会驱动输出,并且所有输入至少发过一个值之后,输出才可能出现。与它相邻的combineLatest则不同,只要各输入都准备好,任一输入继续发值都可能生成新的组合结果。触发权归谁,是两者之间最关键的边界。 (