Angular 将响应数据保存到变量中
Angular save response data into variable
user: User
this.httpService.getCurrentUser()
.subscribe(
data => {
this.user = JSON.parse(data["_body"]).value[0];
console.log("1" +this.user)
},
error => console.error(error)
);
console.log("2"+this.user);
所以在这个函数中我得到我的 currentUser 并将它放入我的变量,如果我第一次记录我的 this.user 它有正确的信息但在第二个日志中它只说 [object] [object] 但是为什么呢?似乎响应数据只在该函数期间的变量中,但稍后会丢失
通过使用 console.log("2"+this.user);
,您告诉 Javascript 首先将 this.user
对象转换为字符串(即 [object Object]
),然后使用 [=13= 进行连接].
还要记住 console.log(2...)
会先发生。因为 console.log(1...)
会在从服务器获取数据后发生。
我还看到您在打印时将服务器的响应分配给 this.User
this.user
- 注意大写字母 U.
我的猜测是您从服务器加载了一个对象。只需使用 console.log(this.user)
即可得到响应。
您需要记住,您拥有的任何订阅都是异步代码。
this.httpService.getCurrentUser()
.subscribe(
data => {
// This may or not (probably not) run first
},
error => console.error(error) // This may never run, if error doesn't occurs.
);
// This will run after the subscription is made. Almost always before the success callback.
console.log("2"+this.user);
任何依赖于异步响应(如 HTTP 请求)的东西都应该在其中。
user: User
this.httpService.getCurrentUser()
.subscribe(
data => {
this.user = JSON.parse(data["_body"]).value[0];
console.log("1" +this.user)
},
error => console.error(error)
);
console.log("2"+this.user);
所以在这个函数中我得到我的 currentUser 并将它放入我的变量,如果我第一次记录我的 this.user 它有正确的信息但在第二个日志中它只说 [object] [object] 但是为什么呢?似乎响应数据只在该函数期间的变量中,但稍后会丢失
通过使用 console.log("2"+this.user);
,您告诉 Javascript 首先将 this.user
对象转换为字符串(即 [object Object]
),然后使用 [=13= 进行连接].
还要记住 console.log(2...)
会先发生。因为 console.log(1...)
会在从服务器获取数据后发生。
我还看到您在打印时将服务器的响应分配给 this.User
this.user
- 注意大写字母 U.
我的猜测是您从服务器加载了一个对象。只需使用 console.log(this.user)
即可得到响应。
您需要记住,您拥有的任何订阅都是异步代码。
this.httpService.getCurrentUser()
.subscribe(
data => {
// This may or not (probably not) run first
},
error => console.error(error) // This may never run, if error doesn't occurs.
);
// This will run after the subscription is made. Almost always before the success callback.
console.log("2"+this.user);
任何依赖于异步响应(如 HTTP 请求)的东西都应该在其中。