这是我的代码。请帮我。从回调中返回预算如何重视主要功能。
返回值主函数
//Метод возвращает текущий бюджет пользователя
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;
}
})
}
});
},
答案 0 :(得分:1)
因为您从函数中调用异步代码,所以需要提供回调以“返回”结果。例如:
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);
}
})
}
});
},
答案 1 :(得分:0)
试试这个:
getCurrentBudget: function (req, callback) { // callback is a function to get budget
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);
}
})
}
});
}
在你的主要部分,你可以这样称呼这个方法:
主要功能(){
getCurrentBudget(req, function(budget) { // this function is your callback actually
console.log(budget);
});
}