为什么当我不想要异步调用时,我不能在 Angular5 中使用 HTTP GET 同步获取数据



假设我正在使用可观察量来监视 Angular 5 应用程序中的HTTP GET方法,并且我有一个对象 fetchedData ,用于存储从此方法检索的数据。

如果我不知道GET何时完成,并且我需要在下一个操作中使用其值,那么异步获取数据有什么意义?

如果要执行的代码不依赖于异步获取的数据,异步检索是否有用(如果是这样,Angular 是否从独立代码中识别依赖于获取的数据代码(?

因此,有没有办法使用 Angular 5 中的 HTTP 请求同步获取数据?

this.somePromiseReturningCall().then()如果您

使用的是Promise对象就可以工作。但我建议不要这样做,因为它会阻止整个网页,直到您得到响应。

但是最好创建一个布尔对象,这会阻止受影响的用户视图。

例如,您有一个

isPageReady = false;

变量。然后在 HTML 中:

<div [disabled]="!isPageReady"> .... </div>

(或者您可以隐藏它,或使用"加载..."标签等(

然后在数据库调用中:

   this.httpClient
      .get(<params>)
      .subscribe(response => {
       <process the response>
       this.isPageReady = true;
    });
  }

最新更新