【发布时间】:2020-09-30 11:56:03
【问题描述】:
就在用户登录之前,我需要测试 WebServce 是否响应以及系统是否处于维护状态。在 WebService 部分(core3 .net)我有 2 个功能:
- 返回的心跳:return Ok("OK");
- 返回的维护信息返回 OK("No"); 我实时显示 2 次测试的结果,如果没有问题,我会显示登录面板。 我需要按顺序进行这些测试,我想用 await 运算符来做。 我有一个带有 2 个返回 bool 的函数的 TestHelperServie 类。但我找不到如何从 HTTP 订阅函数传递到 bool 结果。如果我得到 OK 响应,则为 true,如果我得到超时或另一个失败的 HTTP,则为 false。 现在我这样做:
async TestHeartBeat()
{
let Response:Boolean = false;
const headers = new HttpHeaders()
.set('Content-Type','application/json');
const options = {
headers: headers,
observe: "response" as const,
responseType: "json" as const
};
await this.http.get(`${environment.apiUrl}/TestController/HeartBeat`, options)
.subscribe(res=>{
Response = true;
},
error=>{
Response = false;
})
return Respone;
}
但该函数不等待 http 响应。 我怎样才能解决这个问题? 很抱歉我的新手问题,但我来自 c# 世界,我们经常使用 await/async。我不认为我可以在 angular 10 中以同样的方式做到这一点。
【问题讨论】:
标签: angular10