蓝鸟节点承诺,不能解决价值

我正在使用蓝鸟在我的快速应用程序中写一些承诺,但遇到了问题。 我如何在这里访问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 }) }); 

这是pipe理从中导出方法的身份validation的文件。

 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); }); }); }; 

你似乎是链接.then在你的路线文件中的错误的方法,如果你期待google.getUser()返回你想要存储在用户的值,你应该链接.then该函数的结尾。

 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 }); //End getUser().then(..) }); //End getToken.then(..) }); //End router.get(..)