在这个版本里,我们引入了一个新的布尔类型的标志位:reuseCurrentRendering
以及一个新的 Map 数据结构:renderCallbacks
相当于一个观察-发布者模式的应用。如果有若干并发请求试图访问同一个 page key,则我们服务其中一个请求,将其他请求的 callback 放到 Map 的值即数组中。待被选中的请求服务结束,生成了 HTML 之后,再将 renderCallbacks 里的 callback 数组里的回调函数逐一调用。
在运行时,该 map 的数据结构和值如下图所示: