如何判断对于一个observable stream,存在一个可用的converter?

SAP Spartacus里的converter实例化逻辑

在方法hasConverters里进行:

SAP Spartacus里的converter实例化逻辑
SAP Spartacus里的converter实例化逻辑

this.converters是一个map,里面有四个Spartacus标准的converter:

SAP Spartacus里的converter实例化逻辑
SAP Spartacus里的converter实例化逻辑

因为这四个标准的normalizer都不是ProductNormalizer,因此继续搜索:

SAP Spartacus里的converter实例化逻辑

此处生成converter实例:

SAP Spartacus里的converter实例化逻辑

token:

SAP Spartacus里的converter实例化逻辑

这就是我们应用代码里提供的Normalizer:

SAP Spartacus里的converter实例化逻辑
SAP Spartacus里的converter实例化逻辑

如何实例化converter?

在hydrate方法里:

SAP Spartacus里的converter实例化逻辑
SAP Spartacus里的converter实例化逻辑

这里有个递归操作:

SAP Spartacus里的converter实例化逻辑
SAP Spartacus里的converter实例化逻辑

record.factory,这个工厂方法里,直接调用ProductNameNormalizer,也就是我应用程序里实现的Normalizer:

SAP Spartacus里的converter实例化逻辑

看这个JavaScript代码和TypeScript代码是如何一一对应的:

SAP Spartacus里的converter实例化逻辑

factory:

SAP Spartacus里的converter实例化逻辑
SAP Spartacus里的converter实例化逻辑

要获取更多Jerry的原创文章,请关注公众号"汪子熙":
SAP Spartacus里的converter实例化逻辑

相关文章:

  • 2021-04-27
  • 2022-01-17
  • 2022-01-06
  • 2021-08-31
  • 2021-12-27
  • 2021-09-19
  • 2021-09-26
  • 2021-06-04
猜你喜欢
  • 2021-07-21
  • 2021-09-09
  • 2021-05-24
  • 2021-08-15
  • 2021-09-25
  • 2021-04-18
  • 2021-06-19
相关资源
相似解决方案