Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mongoose异步回调函数中调用参数化回调函数将变成';未定义';_Javascript_Mongodb_Callback_Mongoose_Scope - Fatal编程技术网

Javascript 在mongoose异步回调函数中调用参数化回调函数将变成';未定义';

Javascript 在mongoose异步回调函数中调用参数化回调函数将变成';未定义';,javascript,mongodb,callback,mongoose,scope,Javascript,Mongodb,Callback,Mongoose,Scope,我在调用mongoose的另一个回调中的回调时遇到了一个奇怪的问题。 设置:平均堆栈 myFunc = function (cb) { var projection = { '_id': 0, 'var1': 1, 'var2': 1 } var order = { 'var1': 1 } User.find({}) .select(projection).sort

我在调用mongoose的另一个回调中的回调时遇到了一个奇怪的问题。 设置:平均堆栈

myFunc = function (cb) {
        var projection = {
        '_id': 0,
        'var1': 1,
        'var2': 1
    }

    var order = {
        'var1': 1
    }

    User.find({})
        .select(projection).sort(order)
        .exec(function(err, docs){
            if(err){
                console.log(err);
                cb(err,docs);
            } else {
                console.log(docs);
                cb(err,docs);
            }
        });
};
转到cb(错误,文档)将导致 “ReferenceError:未定义cb”


奇怪的是 我有更深层的嵌套回调函数,可以正常调用“cb”

上面的代码将像这样调用

function init(something){
    myfunc(function(err, doc) {
        if (err){
            console.log(err.message);
        } else {
            //do something about doc
        }
    });
}

呃,似乎调用函数没有正确地遵循规则

它叫

myFunc(json, function(err,doc){
    //do something
})

参数计数错误…

那么,cb函数在哪里?这就是为什么它说cb没有定义。cb函数将被另一个对象或脚本调用。示例是函数init(something){myfunc(函数(err,doc){if(err){console.log(err.message);}否则{//对doc做点什么}}}}}}*请查看问题中的更改*我的意思是。。。cb是由方法调用传递的匿名函数。(参见问题的最后一部分,调用myFunc()的地方)
myFunc(json, function(err,doc){
    //do something
})