Angular将响应数据保存到变量中

时间:2017-12-27 14:11:46

标签: angular http httpresponse

connection.query('SELECT description AS solution FROM mtable WHERE title LIKE '%Breakfast%'', function (error, results, fields) {

所以在这个函数中我得到了我的currentUser并将它放入我的变量中,如果我第一次记录我的this.user,其中有正确的信息,但在第二个日志中它只显示[object] [object]但是为什么?似乎响应数据仅在该函数中的变量中,但稍后会丢失

2 个答案:

答案 0 :(得分:0)

通过使用console.log("2"+this.user);,您告诉Javascript首先将this.user对象转换为字符串([object Object]),然后与2连接。

还要记住,console.log(2...)将首先发生。因为从服务器获取数据后会发生console.log(1...)

此外,当您打印出this.User时,我发现您正在将服务器的响应分配给this.user - 请注意大写字母U。

我的猜测是你从服务器加载一个对象。只需使用console.log(this.user)即可获得响应。

答案 1 :(得分:0)

您需要记住,您拥有的任何订阅都是异步代码。

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请求等异步响应的任何内容都应该在其中。