【发布时间】:2018-05-30 07:14:04
【问题描述】:
我正在使用节点模块fbgraph 来检索 Facebook 用户的数据并在我们的应用中创建一个帐户。
我有以下代码包含在异步函数中:
const newUser = await new Promise((resolve, reject) => {
graph.get(url, (err, res) => {
if (err) {
return reject(err);
}
const user = new User();
user.firstName = res.first_name;
user.lastName = res.last_name;
user.email = res.email;
return resolve(user);
});
});
this.register(newUser);
我无法将 newUser 变量传递给我的注册函数,并且收到此错误:
Argument of type '{}' is not assignable to parameter of type 'User'.
在记录 newUser 时,它似乎是我期待的正确 User 对象,但是当我记录 newUser.constructor 时,似乎实际返回的是 [Function: User]
我对 Promises 不是特别有经验,我觉得问题出在某个地方。非常感谢任何帮助!
【问题讨论】:
-
newUser.constructor应该指向User所以输出看起来是正确的? -
newUser.constructor指向[Function: User]而不是实际的User,我不知道为什么 -
newUser.constructor返回函数,newUser.constructor.name返回类的名称 -
?
someObject.constructor始终指向创建somObject的构造函数。[Function: User]对于名为 User 的函数来说似乎是一个不错的输出。 -
哦,我明白了。我也尝试过记录
newUser.firstName及其属性,但这些错误不断弹出:[ts] Property 'firstName' does not exist on type '{}'.
标签: javascript typescript promise es6-promise