关于sap:SAP-电商云-Spartacus-UI-模块延迟加载的入口程序

34次阅读

共计 483 个字符,预计需要花费 2 分钟才能阅读完成。

该入口位于下图第 218 行的 rxjs from Operator 调用:

这里咱们将一个函数传入 from:

传入的具体函数如下:

这个函数返回一个 promise,该类型作为 from 操作符的输出类型。这个函数保护在 featureConfig json 对象的 module 字段里:

这个 json 对象是 Spartacus 代码里通过 provideConfig 注入到配置对象 config 中的,字段名称为 featureModules:

这里会触发 chunk 加载?

从下图能够确认,的确上图 19 行 import 指令,会触发 spartacus/cart/quick/order chunk 的加载:

第 19 行 import 语句执行完之后,应用 then 返回加载胜利的 QuickOrderModule 定义,这体现了 Promise 的语义。

所以当代码执行到下图第 220 行 switchMap 时,传入的 module 就是加载胜利的 QuickOrderModule 类:

这里还应用了 EventService 来抛出提早加载 chunk 胜利加载的事件:ModuleInitializedEvent

更多 Jerry 的原创文章,尽在:” 汪子熙 ”:

正文完
 0