从Javascript中的回调中的嵌套函数返回值

时间:2015-01-17 09:21:29

标签: javascript node.js mongoose closures mean-stack

function(Model, payload) {
    try {
        var Obj = new Model(payload);
        Obj.save(function(err, obj) {
            if (err) {
                console.log('should be err', err.err);
                retVal = err.err;
            } else {
                console.log('should be user', obj);
                retVal = obj;
            }
        });
    } catch (e) {
        return e;
    }
    return retVal;
};

我正在尝试从上面的代码段返回retVal,但我不断将undefined作为返回值。当我将函数外的retVal声明移到global范围时,它以某种方式设法工作。 问题是我不想在全球范围内宣布retVal。有什么帮助吗?

1 个答案:

答案 0 :(得分:-1)

至少在函数范围内声明retVal。

function (Model, payload) {
  var retVal;
  ...
  ...
  return retVal;
};