我有一个查询Mongo数据库的函数,应该返回一些值。
foo: function(req, res) {
var users = getAllTokens();
console.log(users);
}
function getAllTokens() {
Token.find().populate('user').exec(function(err,rec) {
console.log(rec);
return rec;
});
}
所以行console.log(users)
返回undefined,但console.log(rec)
行返回正确的值。
也许这对我来说太早了,但这应该很简单,我只是没有看到问题。
如果有帮助,我的Mongo数据库是远程存储的,因此获得结果会有延迟(但exec函数是回调函数。)
不确定这是多么重复。如果我转到承诺,我仍然得到相同的结果:
function getAllTokens() {
Token.find().populate('user')
.then(function(rec){
console.log(rec);
return rec;
})
.catch(function(err){
console.log(err);
})
}
return rec未定义,但记录的rec已填充