为什么 SAP 电商云 Spartacus 产品明细页面的自定义 matcher 会重复被调用

http://localhost:4200/powertools-spa/en/USD/jerryproduct/3755211/PSR%2010.8%20LI

为什么打开一个 product 明细页面,也调用了 12 次?



看样子是被 Angular router 框架调用的:


原来还真不是多个 roundtrip 重复调用,而是递归调用:


这是一个闭包:


顺便把参数也解析了:


回到 router.js 代码里,现在通过了 noMatch 检测,继续执行。

又要进行第二轮的 match 检测了:


又是一轮递归执行:


现在能够 return 了:


到目前为止已经执行六次了,被调用两次,每次里如上图所示有三个递归,3 × 2 = 6

再次进入 router.js:

三次递归调用:


这里又触发我们的自定义 matcher 了,第三次触发:

又是三个递归调用:


match 通过,创建一个新的 ActivatedRouteSnapshot 对象:


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


你可能感兴趣的:(为什么 SAP 电商云 Spartacus 产品明细页面的自定义 matcher 会重复被调用)