【发布时间】:2018-08-09 08:28:32
【问题描述】:
我正在尝试从 firebase 中的 getUserRecordFromAuth 函数内部返回 userRecord,并使用它从 Firebase 中的身份验证中获取用户的 UID。
问题是 userRecord.uid 总是返回undefined,即使我在getUserRecordFromAuth() 中返回了promise 的值。什么给了?
const getUserData = mobile => {
const userRecord = getUserRecordFromAuth(mobile);
console.log('uid', userRecord.uid);
}
const getUserRecordFromAuth = mobile => {
const promise = auth.getUserByPhoneNumber(mobile);
return promise.then(userRecord => {
return userRecord;
}).catch(error => {
console.log(error);
});
}
【问题讨论】:
-
getUserRecordFromAuth(...).then(....) -
你不是在“返回承诺的价值”(这是不可能的,因为它只会在未来可用),而是你在返回承诺本身。
-
为了以更命令式的方式实现相同的结果,类似于您的代码,您还可以使用
asyc - await抽象与承诺返回异步函数。 -
@Bergi 关于价值返回承诺的任何建议,我可以检查。与 async/await.. 有什么区别?
标签: javascript node.js firebase promise es6-promise