角保存响应数据为可变
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第一次它在,但在第二记录它的正确信息只说[对象] [对象],但是为什么?这似乎是响应数据仅在该函数中的变量,但失去它后角保存响应数据为可变
回答:
使用console.log("2"+this.user);
你告诉的Javascript到this.user
对象首先转换为字符串(这是[object Object]
),然后做CONCAT与2
。
还记得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请求等异步响应的东西都应该放在里面。
以上是 角保存响应数据为可变 的全部内容, 来源链接: utcz.com/qa/265602.html