先看这个类的get定义:接收两个入参,类型为:NgSetupOptions,返回类型为NgExpressEngineInstance。后者是一个函数,作为ExpressEngine的执行实例,接收filePath、option和callback作为参数。一一对应:返回一个新的函数,接收E,??标准的NgExpressEngine入参作为入参,存储原来的两个入参NgExpressEngine和Spartacus优化值:后面在server.ts中,我们调用这个封装好的ngExpressEngine,此时入参是一个对象,字段是bootstrap,这个对象就是图E:NgSetupOptions此时执行函数体:Object.assign()方法用于给所有的enumerable赋值properties从一个或多个源对象分配给目标对象。它将返回目标对象。调用get方法时传入的值通过闭包存储在这里:三点,即合并了几个对象的不同名称的字段,最后的结果:闭包中的第一个入参是标准的ngExpressEngine:这是Angular标准的实现,我们不用管它:注意返回类型:创建一个OptimizationEngine的实例:最后返回一个新的函数renderResponse,函数执行时,执行上下文为OptimizedSsrEngine本身:从现在开始,this.engines指向斯巴达克斯自带的renderResponse函数:更多Jerry原创文章在这里:《王子熙》:
