假设我们使用AngularUniversal开发了一个服务端渲染的Angular应用,它会消费第三方的RestfulAPI。上述场景分为以下六个步骤:用户到部署Node.js服务器与Angular服务端应用发起页面请求Node.js调用第三方RestfulAPI,第三方RestfulAPI返回结果。此结果用于呈现最终页面。服务器端呈现的页面在Angular中返回给浏览器。在浏览器中引导,再次调用RestfulAPI。RestfulAPI返回给浏览器,Angular客户端应用程序将数据重新渲染到视图中。我们可以通过创建TransferState服务来提高应用程序的效率,该服务是在Node.js服务器和浏览器中呈现的应用程序之间交换的键值注册表。我们将通过HTTP_INTERCEPTOR机制来使用它,该机制将驻留在HttpClient服务中,并将处理请求和响应。新建一个类来实现HttpInterceptor接口定义的拦截方法:@Injectable({providedIn:'root'})>>只要对HttpClient服务进行任何API调用,就会调用此方法。为简单起见,我们只为GET方法启用TransferState:if(request.method!=='GET'){returnnext.handle(request);我们根据GET请求的URL生成一个密钥。我们将使用键值对来存储或检索请求响应,具体取决于请求是在服务器端还是浏览器端处理:constkey:StateKey
