这是我的代码。请帮我。从回调中返回预算如何评估主函数。
主函数如何返回值
//Метод возвращает текущий бюджет пользователя
getCurrentBudget: function (req) {
var reqToken = req.headers["authorization"].substr(7);
var is = true;
jwt.verify(reqToken, config['jwt'], function (error, user) {
// Если бюджет текущего пользователя
if (user.currentBudget) {
db.budget.findOne({ownerId: objectId(user._id)}, function(error, budget) {
if (!error && budget) {
//Бюджет найден
logger.debug('Бюджет найден: %j', budget, {});
return budget;
}
})
} else {
// Ищем бюджет в который пригласили этого пользователя
db.budget.findOne({membersEmail: user.email}, function(error, budget) {
if (!error && budget) {
//Бюджет найден
logger.debug('Бюджет найден: %j', budget, {});
return budget;
}
})
}
});
},
最佳答案
因为您从函数中调用异步代码,所以您需要提供回调以“返回”结果。例如:
getCurrentBudget: function (req, callback) {
var reqToken = req.headers["authorization"].substr(7);
var is = true;
jwt.verify(reqToken, config['jwt'], function (error, user) {
// Если бюджет текущего пользователя
if (user.currentBudget) {
db.budget.findOne({ownerId: objectId(user._id)}, function(error, budget) {
if (!error && budget) {
//Бюджет найден
logger.debug('Бюджет найден: %j', budget, {});
callback(budget);
}
})
} else {
// Ищем бюджет в который пригласили этого пользователя
db.budget.findOne({membersEmail: user.email}, function(error, budget) {
if (!error && budget) {
//Бюджет найден
logger.debug('Бюджет найден: %j', budget, {});
callback(budget);
}
})
}
});
},
关于javascript - 将回调值返回给主函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529778/