在我的应用中,我正在拨打服务:
getEnv(): Promise<string>{
return this.http.get(this.url + 'Home/GetEnv')
.toPromise()
.then(response => response.json().environment)
.catch(this.handleError);
}
返回组件
getEnvironnement(): string {
this.appService.getEnv().then(url => {
this.url = url;
})
return this.url;
}
问题如下。当我调用MyComponent.getEnvironnement()
时,结果为undefined
,因为对我的服务的调用是异步的,我知道所有这些内容。但是..有没有办法在返回this.url
之前等待?
谢谢!
答案 0 :(得分:1)
您可以使用async-await以顺序方式编写代码,同时仍保留非阻塞异步HTTP请求的好处:
async getEnvironnement(): Promise<string> {
this.url = await this.appService.getEnv();
return this.url;
}