这是我的代码。请帮帮我。从回调函数返回预算如何值主函数。返回主函数的回调值
如何返回值的主要功能
//Метод возвращает текущий бюджет пользователя
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( )'应该声明为'var getCurrentBudget = function(){...};'对于初学者。 – JayRow
不可能。主函数在调用回调之前就存在。做一个搜索,你会发现数百个其他问题,询问如何从回调或AJAX请求中返回一个值。那里的解决方案将会有所帮助。基本上你不会将数据返回到代码中,而是将代码传递给数据。 –
您也可以使用承诺框架/库(如q,请参阅https://github.com/kriskowal/q),以使代码更健壮。无论哪种方式,您都需要使用回调函数,正如下面的答案中所建议的,因为您正在处理异步JavaScript。 –