在我的角度应用程序中,服务中有一个空白,该空白从api请求数据,然后更新一些变量。在同一服务中,我还有一个返回第一个函数设置的变量的方法。我在第一个函数中使用await等待http请求执行,但是第二个函数返回[Object promise]并且不等待HTTP请求完成。我该如何解决这个问题?
async getData() {
const req = new HttpRequest('POST', '/myapi', body, { headers: headers, reportProgress: true, responseType: 'text', });
const event: HttpEvent<any> = await this.http.request(req).toPromise();
/*
Assigning some variables, the function doesn't return anything
*/
}
async getVariable() {
await getData();
return this.thevariabletoreturn
}
答案 0 :(得分:0)
尝试以下操作:
getData() {
const req = new HttpRequest('POST', '/myapi', body, { headers: headers, reportProgress: true, responseType: 'text', });
this.http.request(req).toPromise().then(res => {
const event: HttpEvent<any> = res;
/*
Assigning some variables, the function doesn't return anything
*/
});
}
async getVariable() {
await getData();
return this.thevariabletoreturn;
}
请注意,您必须考虑移动所有变量,这取决于您是从API获取数据的,为此,我已在.then()
块内移动了您的注释