为什么 SAP 电商云 Spartacus 产品明细页面的自定义 matcher 会重复被调用
http://localhost:4200/powertools-spa/en/USD/jerryproduct/3755211/PSR%2010.8%20LI
為什么打開(kāi)一個(gè) product 明細(xì)頁(yè)面,也調(diào)用了 12 次?
看樣子是被 Angular router 框架調(diào)用的:
原來(lái)還真不是多個(gè) roundtrip 重復(fù)調(diào)用,而是遞歸調(diào)用:
這是一個(gè)閉包:
順便把參數(shù)也解析了:
回到 router.js 代碼里,現(xiàn)在通過(guò)了 noMatch 檢測(cè),繼續(xù)執(zhí)行。
又要進(jìn)行第二輪的 match 檢測(cè)了:
又是一輪遞歸執(zhí)行:
現(xiàn)在能夠 return 了:
到目前為止已經(jīng)執(zhí)行六次了,被調(diào)用兩次,每次里如上圖所示有三個(gè)遞歸,3 × 2 = 6
再次進(jìn)入 router.js:
三次遞歸調(diào)用:
這里又觸發(fā)我們的自定義 matcher 了,第三次觸發(fā):
又是三個(gè)遞歸調(diào)用:
match 通過(guò),創(chuàng)建一個(gè)新的 ActivatedRouteSnapshot 對(duì)象:
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的为什么 SAP 电商云 Spartacus 产品明细页面的自定义 matcher 会重复被调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iptables总结,开启端口,查看端口
- 下一篇: 流媒体传输协议(rtp/rtcp/rts