在這個版本裡,我們引入了一個新的布爾類型的标志位:reuseCurrentRendering
以及一個新的 Map 資料結構:renderCallbacks
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yY5cjMmdDNihjY2MjN2cDOiRDN0kDNxIGM1IDOzgTY48CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
相當于一個觀察-釋出者模式的應用。如果有若幹并發請求試圖通路同一個 page key,則我們服務其中一個請求,将其他請求的 callback 放到 Map 的值即數組中。待被選中的請求服務結束,生成了 HTML 之後,再将 renderCallbacks 裡的 callback 數組裡的回調函數逐一調用。
在運作時,該 map 的資料結構和值如下圖所示:
每個請求 pending 的 callback 依次被調用:
測試結果:10個并發請求,有4個通過 SSR 模式接收到了響應。