假设我正在使用可观察量来监视 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;
});
}