如何在node.js中获取回调函数值

时间:2014-08-13 05:18:31

标签: node.js mongoose

这是我的controller方法

中的逻辑
exports.index = function(req, res) {

   var empRole;
   EmpModel.findById(empId, null ,function(err, emp) {

      if(emp) {
         empRole = emp.role;          
      }
   });

   console.log("Emp Role : " + empRole);      // This will return undefined
};

如何从回调函数

中获取empRole的值

1 个答案:

答案 0 :(得分:0)

您可以将回调传递给索引函数并在" IF"内部传递回调函数。 condition使用回调将值传递给调用者。

示例:

exports.index = function(callback) {

   var empRole;
   EmpModel.findById(empId, null ,function(err, emp) {

      if(emp) {
         empRole = emp.role;
         callback(empRole)
      }
   });


};

你需要像这样调用索引函数:

index(function(emprole){
      //this function is executed once the findById completes
      console.log("Emp Role : " + empRole); 
});

在javascript中与Callback一起查看Closure以更好地理解这一点。