javascript - 将回调值返回给主函数

标签 javascript node.js mongoose

这是我的代码。请帮我。从回调中返回预算如何评估主函数。

主函数如何返回值

    //Метод возвращает текущий бюджет пользователя
    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/

相关文章:

database - 如何通过id关联表

regex - 如何在 Pug (Jade) 模板中使用 HTML5 pattern 属性

node.js - Mongoose 查询,选择 10 个最近的文档而不改变顺序

javascript - 如何在 Firefox 中隐藏重新提交警报

node.js - 使用 Node js 处理 snmp 陷阱并通知本地主机

javascript - 在 sumoselect 上选中和取消选中时 jQuery 触发事件

mongodb - 平等条件在 group by mongodb 中无法正常工作

javascript - 如何在 Model.find( obj , callback) 上传播回调 promise 值?

javascript在初始化中设置变量条件

javascript - 开源 Actionscript 3 或 Javascript 日期实用程序类?