我们如果通过 CSR 即 Client Side Render 的方式启动 SAP Spartacus UI,可以在 Chrome 开发者工具里观测到 Product Carousel 对应的产品主数据的 HTTP 请求。
在 SSR 模式下,结论是客户端应用不会再发起 product HTTP 请求。在 Chrome 开发者工具里观测不到此类请求。
但是,触发请求的外层代码仍然得到执行了:
看注释,底层的 product loader 确保 product 数据只加载一次:
什么时候应该加载 product?
loading 为 false,success 为 false,error 为 false 时,加载 product
distinctUntilChanged:淘汰掉重复的数据。
merge:合并异步数据流。
117行的断点进不去。
combineLatest 的弹珠图:
调⽤withLatestFrom的那个Observable对象起到主导数据产⽣节奏的作⽤,作为参数的Observable对象只能贡献数据,不能控制产⽣数据的时机。
merge 的弹珠图: