如何在变量中保存 angular 8 http 请求 return 值?
how to save angular 8 http request return value in a variable?
我在 angular 中进行如下 http 调用:
this.values = this.http.get("https://reqres.in/api/users/2").subscribe(data => console.log(data))
console.log(this.values)
现在第一行的console.log打印数据变量,打印正确的return结果,即json格式数据。我想做的是将 return 值保存在 this.values 变量中,但它不起作用。 this.value 变量是 return 一些与我的 return 值无关的奇怪信息的对象。
下图显示控制台日志:
this.values return 是图片顶部的对象,而不是底部的 json 由 console.log 编辑的 return(数据)
如何将 http return 值保存到 this.value 变量中?
this.http.get("https://reqres.in/api/users/2").subscribe(data => {
console.log(data);
this.values = data;
}
当您将 http.get
方法分配给值时,您是在分配对可观察对象本身的引用。您想调用可观察对象并更改订阅附带的回调中的值。
这可能对正在看这个问题的人有用。
下面获取和存储数据的方法允许您使用 async 和 await 通过使用 toPromise()。
在函数中使用 async 和 await 会导致代码等待 api.
的 return
async get(){
var data = await this.http.get(this.url).toPromise(); //returns a json
var dataString = data.toString(); //Stringify the json to turn it to object
var dataObj = JSON.parse(dataString);
this.agenciesData = dataObj; //assign your variable to it
}
我在 angular 中进行如下 http 调用:
this.values = this.http.get("https://reqres.in/api/users/2").subscribe(data => console.log(data))
console.log(this.values)
现在第一行的console.log打印数据变量,打印正确的return结果,即json格式数据。我想做的是将 return 值保存在 this.values 变量中,但它不起作用。 this.value 变量是 return 一些与我的 return 值无关的奇怪信息的对象。
下图显示控制台日志:
this.values return 是图片顶部的对象,而不是底部的 json 由 console.log 编辑的 return(数据)
如何将 http return 值保存到 this.value 变量中?
this.http.get("https://reqres.in/api/users/2").subscribe(data => {
console.log(data);
this.values = data;
}
当您将 http.get
方法分配给值时,您是在分配对可观察对象本身的引用。您想调用可观察对象并更改订阅附带的回调中的值。
这可能对正在看这个问题的人有用。
下面获取和存储数据的方法允许您使用 async 和 await 通过使用 toPromise()。
在函数中使用 async 和 await 会导致代码等待 api.
的 returnasync get(){
var data = await this.http.get(this.url).toPromise(); //returns a json
var dataString = data.toString(); //Stringify the json to turn it to object
var dataObj = JSON.parse(dataString);
this.agenciesData = dataObj; //assign your variable to it
}