【发布时间】:2020-09-29 10:14:37
【问题描述】:
共有三个按钮:
单击第一个Request HTTP Data As Promise 按钮将获得其HTTP 响应为Promise。
第二个Request HTTP Data As Observable 按钮的响应为Observable。
这两个按钮都使用异步响应机制获得响应。
现在,我希望第三个Request HTTP Data and Wait 按钮获得同步响应。我希望它等待 http 服务返回 HTTP 响应。
怎么可能呢?这里是 Stackblitz 项目的链接(请使用 HttpService 脚本中定义的占位符函数 getDataSynchronous 来实现此功能):
https://stackblitz.com/edit/angular-ivy-ukgwct?file=src%2Fapp%2Fhttp.service.ts
export class HttpService {
jsonFile = '../assets/products.json';
constructor(private http: HttpClient) {}
getDataAsPromise(): Promise<any> {
return this.http.get(this.jsonFile)
.toPromise()
}
getDataAsObservable(): Observable<any> {
return this.http.get(this.jsonFile)
}
getDataSynchronous(): any {
return []
}
【问题讨论】:
-
但是为什么呢?它阻塞了唯一的线程。
-
我只是想知道如何在 Angular 中做到这一点。
标签: angular typescript promise observable