【发布时间】:2021-02-22 17:19:08
【问题描述】:
我正在使用 Angular 8 开发一个 Web 应用程序。我在使用带有异步函数的 JavaScript 时遇到了问题。 我创建了一个具有公共方法的服务:此方法检查可能随时间变化的条件,在一种情况下(true)它会通过对 HTTP 调用;在另一种情况下 (false) 它返回它已经拥有的数据。这是一个代码示例:
private date; // My date
getMyDate() {
if(my_boolean_condition) {
this.http.post(this.myUrl, JSON.stringify(this.myInputData)).toPromise().then((data: any) => {
this.date = data;
return this.date;
}
} else {
return this.date;
}
}
我完全知道这段代码有问题,但我不明白是什么。
如果客户端(例如 Angular 组件)调用我的 getMyDate() 方法,则返回值是 undefined。
我想要的是该方法始终返回一个不同于 undefined 的值,无论它是否进行 HTTP 调用。
【问题讨论】:
-
1.初始化日期变量
-
2.您不需要在 http.post 中对您的数据进行字符串化
-
3.您不是在等待异步调用完成
标签: javascript angular http web-services asynchronous