function getEmployees(jobID){
MongoClient.connect(url, function(err, db){
if(err) throw err;
var dbo = db.db("mydb");
dbo.collection("employees").find({employee:jobID}).toArray(function(err, result){
if(err) throw err;
db.close();
console.log(result) // shows the employees. cool!
// how do I return result??
})
})
}
var employees = getEmpoyees(12345); // I want the employees variable to be an array of employees
我是node.js和javascript的新手,我无法解决这个问题。我是否需要实现回调以按照我尝试的方式使用数据?
答案 0 :(得分:2)
非常有趣的问题。 在这种情况下,您无法直接返回值。 所以我实现了间接方式来获取返回值。 为此,我在“getEmployees”函数中添加了“callback”函数作为函数参数。 更新后的代码如下。
function getEmployees(jobID, callBack){
MongoClient.connect(url, function(err, db){
if(err) throw err;
var dbo = db.db("mydb");
dbo.collection("employees").find({employee:jobID}).toArray(function(err, result){
if(err) throw err;
db.close();
console.log(result) // shows the employees. cool!
// you can return result using callback parameter
return callBack(result);
})
})
}
var employees = getEmpoyees(12345, function(result) {
console.log(result);
}); // I want the employees variable to be an array of employees