从Javascript回调中的嵌套函数返回值
我试图从上面的代码段返回从Javascript回调中的嵌套函数返回值,javascript,node.js,mongoose,closures,mean-stack,Javascript,Node.js,Mongoose,Closures,Mean Stack,我试图从上面的代码段返回retVal,但我一直得到undefined作为返回值。当我将函数外部的retVal声明移动到global范围时,它以某种方式成功地工作了。 问题是我不想全局声明retVal。是否有帮助?至少在函数范围内声明retVal function(Model, payload) { try { var Obj = new Model(payload); Obj.save(function(err, obj) { if
retVal
,但我一直得到undefined
作为返回值。当我将函数外部的retVal
声明移动到global
范围时,它以某种方式成功地工作了。
问题是我不想全局声明
retVal
。是否有帮助?至少在函数范围内声明retVal
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;
};
依我看,捕获异常以返回它不是一种好的做法。这将导致进一步的问题。如果您想在更高的级别处理异常,您可能根本不想在当前函数中捕获它。回调成功了!
function (Model, payload) {
var retVal;
...
...
return retVal;
};