我有点困惑为什么我没有在Mongoose查询回调中看到父作用域,这是我的代码:
var P = require('bluebird');
var getUser = P.promisify(
function(userId, locals, next){
logger.info(locals); //{offer: 1}
User.findOne({_id: userId}).lean().exec(function(err, user){
logger.info(locals); //undefined
if(err){return next(err);}
if(!locals)
locals = {user: user};
else{
locals.user = user;
}
return next(null, locals);
});
}
);
var locals = {offer: 1};
getUser(user._id, locals);
我用两个参数调用getUser函数,在函数的作用域中我可以看到它们两者,但我需要访问mongoose回调中的locals变量而不是看到父作用域值范围。
关于如何解决这个问题的任何想法?
提前致谢