Typescript/Javascript 个对象
Typescript/Javascript objects
我一直在学习。我的问题是:为什么这样:
let user = {
firstname: '',
secondname: ''
}
let hz = new Horizon({host: "164.132.192.28:3100"});
let table = hz('users');
hz.connect();
table.find(1).fetch().subscribe((value) => {
user = {
firstname: value.firstname,
secondname: value.secondname
}
//OR:
user.firstname = value.firstname;
user.secondname = value.secondname;
});
console.log(user);
给我这个:
为什么我无法获取值?:
console.log(user.firstname);
//prints nothing
我的第三个问题:如何将查询的结果保存到一个对象中并在查询之外使用它?如果我使用 'return' 关键字,那么结果是相似的。我知道这是一个新手问题,但我真的很难解决这个问题...有人可以帮助我吗?
下一行:
table.find(1).fetch().subscribe(...);
正在调用异步方法。这意味着提供的回调将在稍后调用,而不是在调用 subscribe
时立即调用。因此,当涉及到 console.log()
时,浏览器会打印出其字符串表示形式,此时名字和姓氏尚未填充 - 因此为空字段。当您稍后单击该对象以在控制台中查看其内容时 - 浏览器会在此时对其进行评估,并且订阅方法很可能已经完成 - 因此您会看到您的名字和姓氏。
您的代码实际上是将数据保存在本地user
变量中。您必须记住的是,只有在 subscribe
回调被调用后才能访问它。
我一直在学习。我的问题是:为什么这样:
let user = {
firstname: '',
secondname: ''
}
let hz = new Horizon({host: "164.132.192.28:3100"});
let table = hz('users');
hz.connect();
table.find(1).fetch().subscribe((value) => {
user = {
firstname: value.firstname,
secondname: value.secondname
}
//OR:
user.firstname = value.firstname;
user.secondname = value.secondname;
});
console.log(user);
给我这个:
为什么我无法获取值?:
console.log(user.firstname);
//prints nothing
我的第三个问题:如何将查询的结果保存到一个对象中并在查询之外使用它?如果我使用 'return' 关键字,那么结果是相似的。我知道这是一个新手问题,但我真的很难解决这个问题...有人可以帮助我吗?
下一行:
table.find(1).fetch().subscribe(...);
正在调用异步方法。这意味着提供的回调将在稍后调用,而不是在调用 subscribe
时立即调用。因此,当涉及到 console.log()
时,浏览器会打印出其字符串表示形式,此时名字和姓氏尚未填充 - 因此为空字段。当您稍后单击该对象以在控制台中查看其内容时 - 浏览器会在此时对其进行评估,并且订阅方法很可能已经完成 - 因此您会看到您的名字和姓氏。
您的代码实际上是将数据保存在本地user
变量中。您必须记住的是,只有在 subscribe
回调被调用后才能访问它。