我试图在使用蓝鸟的快递应用程序中写一些承诺,但遇到了问题。如何在此处访问user
值 - resolve(response)
方法未返回该值。
这是路线档案:
router.get('/auth/google/callback', (req, res) => {
google.getToken(req.query.code)
.then( () => { google.getUser() })
.then(user => {
console.log(user); //undefined - response is NOT defined here
})
});
这是用于管理从中导出方法的身份验证的文件。
module.exports.getToken = (code)=> {
console.log('step 1');
return new Promise((resolve, reject) => {
oauth2Client.getToken(code, (err, tokens) => {
if (!err) {
oauth2Client.setCredentials(tokens);
resolve();
}
});
});
};
module.exports.getUser = () => {
console.log('step 2');
return new Promise((resolve, reject) =>{
plus.people.get({
userId: 'me',
auth: oauth2Client
}, (err, response) => {
if(!err)
resolve(response); //response is defined here as the user
else
reject(err);
});
});
};
答案 0 :(得分:1)
如果您希望.then
返回要存储在用户中的值,则应将链接{{1}链接到您的路径文件中的google.getUser()
。在函数调用结束时。
.then