我正在使用javascript来填充变量,但是我在回收数据时遇到了问题。
这是代码:
var invoice_email = function(req, res, clientObject, staffId, appointment, staff_template, client_template, callback){
//This step sets up all the variables in the locals object
var locals = [];
//This makes the query if StaffId has no email property
if (staffId[0].email !== undefined){
console.log('StaffID is an Object');
locals.staff = staffId[0];
} else {
var myStaff_id = staffId[0].toString();
User.findOne({roles: 'staff', _id: myStaff_id})
.select('_id email displayName profile_pic')
.exec(function(err, user) {
if (err) {
console.log(err);/*res.status(400).send({
message: errorHandler.getErrorMessage(err)
});*/
} else {
locals.staff = user;
}
});
}
console.log(locals.length);
console.log(locals);
};
我试图在if-else语句之外获取'locals'变量,但是无法让它返回locals变量。我知道函数循环,然后执行if-else语句,但是无法获取locals变量,这非常烦人。
我也尝试使用return locals
,但这不会,因为我从另一个函数调用invoie_email函数,并希望在返回调用者之前在这里做更多的事情。有人可以帮忙吗?