Angular Universal Render 等待 Http 结果 Observable 订阅者

Posted

技术标签:

【中文标题】Angular Universal Render 等待 Http 结果 Observable 订阅者【英文标题】:Angular Universal Render to Wait for Http Result Observable Subscriber 【发布时间】:2017-09-03 11:58:45 【问题描述】:

我有一个调用 ASP.Net Web API 服务的 Angular Universal 应用程序。

我已将 Console 写入 Web 服务的 Angular 调用(从组件的构造函数或 ngOnInit 启动,我都尝试过)和 Typescript 中的订阅者函数,以及 Web API 方法。

在运行应用程序时,我注意到 Angular Universal 应用程序不等待 Web API 的结果。

我收到的最后一条控制台写入消息来自 Web API,而不是来自订阅者调用中的函数。

如何强制 Angular Universal 应用在完成渲染之前等待结果?

【问题讨论】:

【参考方案1】:

只要您使用 Angular HttpClient,服务器端渲染应该等待它完成,然后再提供您的响应。

如果这对您不起作用,请尝试使用模板代码中的| async 管道订阅调用。

例如:

export class MyComponent 
  public response$ = this.httpClient.get<string>('https://my.api');

  constructor(private httpClient: HttpClient)

<span>  response$ | async  </span>

【讨论】:

以上是关于Angular Universal Render 等待 Http 结果 Observable 订阅者的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular Universal 中捕获服务器上的组件错误?

nuxt框架Universal和Spa两种render mode的区别

Angular Universal 学习笔记

Angular-universal - 生产问题

Angular 7 Universal Firebase 路由

如何在 Angular 4 Universal 中发出 http post 请求?