从Node.Js中的一系列回调函数返回结果

时间:2014-05-28 09:57:27

标签: javascript node.js callback

我的Node.Js / Express应用程序中有一个导出函数,我希望通过它内部的一系列回调函数返回一个特定的值。试图使它工作几个小时,但找不到正确的方法......也许你可以帮忙吗?这是代码:

exports.finalResult = function() {

    var finalanswer = firstFunction(secondFunction);

    function firstFunction(callback) {
        dbneo.cypherQuery(context_query, function(err, cypherAnswer) {

            if (err) {
                err.type = 'neo4j';
                return callback(err);
            }
            var notion = 1;
            // Probably this return below doesn't work because it's inside of a db query function...
            return callback(null, notion);

        });

    }

    function secondFunction(err, notion) {
        if (err) console.log(err);
        var answer = notion + 1
        return answer;
    }

    return finalanswer;

}

然后我从另一个文件调用这个导出函数来获得像

这样的结果
 console.log(options.finalResult());

但它返回undefined。

请帮忙!

1 个答案:

答案 0 :(得分:2)

exports.finalResult = function(finalCallback) {

    var finalanswer = firstFunction(secondFunction);

    function firstFunction(callback) {
        dbneo.cypherQuery(context_query, function(err, cypherAnswer) {

            if (err) {
                err.type = 'neo4j';
                return callback(err);
            }
            var notion = 1;
            callback(null, notion);
        });
    }

    function secondFunction(err, notion) {
        if (err) console.log(err);
        var answer = notion + 1
        finalCallback(answer);
    }
}

// Usage
options.finalResult(function (result) {
    console.log(result);
});