這是我的代碼。請幫幫我。從回調函數返回預算如何值主函數。返回主函數的回調值
如何返回值的主要功能
//Метод возвращает текущий бюджет пользователя
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。 –