【发布时间】:2019-04-18 22:48:01
【问题描述】:
我在构造函数中声明了一个变量,如下所示
constructor(public http: HttpClient) {
this.data = null;
this.http.get(this.url).subscribe((datas: any) => {
this.dbUrl = datas[0].db_url2;
console.log(this.dbUrl) // <- this output
})
}
在这里我可以看到我的输出为
987456321
但是我在同一个类中用不同的方法声明了变量。
getDetails() {
let headers = new HttpHeaders();
headers.append('Content-Type','application/json');
console.log(this.dbUrl); // <- this output
return this.http.get(this.dbUrl + 'details', { headers: headers})
}
当我显示输出时,它显示为Undefined。 dbUrl 是一个全局变量。有人可以帮我解决这个问题吗?
【问题讨论】:
-
你什么时候打电话给
getDetails?http.get是一个异步方法,所以如果你尝试在http.get完成之前调用getDetails,那么dbUrl还没有准备好。 -
getDetails()函数应该等待http.get()完成。
标签: javascript typescript ionic2 ionic3