角保存响应数据为可变

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

回到顶部