【发布时间】:2020-08-11 23:26:31
【问题描述】:
我正在向 API 服务器发出 HTTP 发布请求。我有一个函数可以进行调用,然后根据响应的值返回 true 或 false。但是,当我尝试评估响应时,它是未定义的,因此我的函数总是返回 false。
我想过创建一个 while(response == undefined) 循环,只是为了等到值被定义后再评估它,但是还有其他解决方案吗?
apiCall(): any{
let headers: HttpHeaders = new HttpHeaders();
headers.append('Content-Type', 'application/json');
var result;
this.http.post(this.url, this.data, {headers: headers}).subscribe(
res => {
result = res;
}
);
return result;
}
evaluate() : boolean {
var response = apiCall();
if(response == 1968){
return true;
}
else return false;
}
我想根据 api 响应的值从我的评估函数中返回真或假。
【问题讨论】:
-
只是返回调用不要在 apiCall 中订阅它在组件中或从您实际调用它的位置订阅它,然后在那里订阅并等待结果。然后你可以做 apiCall().subscribe(res => ..... 你的代码 . .)
标签: angular typescript http web-applications