2015-01-17 90 views
0
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。任何幫助?在Javascript

+0

恕我直言,捕捉異常返回它不是一個好習慣。這會導致您遇到更多問題。如果你想處理更高級別的異常,你可能不想在當前的函數中捕捉它。 –

回答

-1

至少在函數的範圍內聲明retVal。

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

回調工作! –