返回值未定义,但是已记录的值是否已填充?

时间:2017-01-21 09:55:54

标签: javascript node.js sails.js waterline

我有一个查询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已填充

0 个答案:

没有答案