如何将角度8 http请求返回值保存在变量中?

rab*_*aka -2 http httpclient angular

我在Angular中进行http调用如下:

this.values = this.http.get("https://reqres.in/api/users/2").subscribe(data => console.log(data))
console.log(this.values)
Run Code Online (Sandbox Code Playgroud)

现在,第一行中的console.log打印数据变量,并打印正确的返回结果,即json格式数据。我想做的是将返回值保存在this.values变量中,但不起作用。this.value变量返回的对象中包含一些与我的返回值无关的奇怪信息。

下图显示了控制台日志:

this.values返回图片顶部的对象,而不是console.log(data)返回底部的json。

如何将http返回值保存到this.value变量中?

C. *_*olm 6

this.http.get("https://reqres.in/api/users/2").subscribe(data => {
  console.log(data);
  this.values = data;
}
Run Code Online (Sandbox Code Playgroud)

当您将http.get方法分配给值时,就是在分配对可观察对象的引用。您要调用可观察对象并更改订阅随附的回调中的值。

  • 当响应到达时,`this.values`不会是不确定的。您只会看到未定义的内容,因为您在http请求之后立即执行了“ console.log(this.value)”。在订阅回调内部移动该行,如`... subscribe(data => {this.values = data; console.log(data); console.log(this.values)});` (2认同)