Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数传递给Node.js中的嵌套回调_Javascript_Node.js_Callback - Fatal编程技术网

Javascript 将函数传递给Node.js中的嵌套回调

Javascript 将函数传递给Node.js中的嵌套回调,javascript,node.js,callback,Javascript,Node.js,Callback,我正试图弄清楚如何执行几个异步请求,但将a函数传递给回调函数。就像下面在我的GetPosts()中一样,我正在传递一个函数。因此,我的问题是,我如何处理async.series函数中的回调,同时能够传入一个函数来处理来自该系列的回调。目前,我正在打电话给cb,但不是“回调”,但不确定解决方法是什么。这有意义吗 var request = require("request"); var async = require("async"); Context.prototype.GetPosts =

我正试图弄清楚如何执行几个异步请求,但将a函数传递给回调函数。就像下面在我的GetPosts()中一样,我正在传递一个函数。因此,我的问题是,我如何处理async.series函数中的回调,同时能够传入一个函数来处理来自该系列的回调。目前,我正在打电话给cb,但不是“回调”,但不确定解决方法是什么。这有意义吗

var request = require("request");
var async = require("async");

Context.prototype.GetPosts = function (params, cb) {
    async.series({
        one: function (callback) {
            request("http://jsonplaceholder.typicode.com/posts/1", function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    return cb(body);
                }
                cb(null, result);
            });
        },
        two: function (callback) {
            request("http://jsonplaceholder.typicode.com/posts/1", function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    return cb(body);
                }
                cb(null, result);
            });
        }
    },
    function (err, results) {
    });
};

var params = new Params("MyPosts");

Context.GetPosts(params, function (cb) {
    console.log("Response: " + cb);
});

提前谢谢。

您在现在调用cb的地方调用
callback
,让Async知道是时候继续了,然后在
GetPosts
函数底部的最后一个回调中调用cb,因为整个系列完成后会触发

传递错误,以便您可以在
GetPosts

var request = require("request");
var async   = request("async");

Context.prototype.GetPosts = function (params, cb) {
    async.series({
        one: function (callback) {
            request("http://jsonplaceholder.typicode.com/posts/1", function (error, response, body) {
                if (error) return callback(error, null);
                if (response.statusCode == 200) return callback(null, body);
                return callback('err', null);
            });
        },
        two: function (callback) {
            request("http://jsonplaceholder.typicode.com/posts/1", function (error, response, body) {
                if (error) return callback(error, null);
                if (response.statusCode == 200) return callback(null, body);
                return callback('err', null);
            });
        }
    },
    function (err, results) {
        if (err) {
            return cb(err, null);
        } else {
            return cb(null, results);
        }
    });
};

var ctx = new Context();

ctx.GetPosts(new Params("MyPosts"), function (err, data) {
    if (err) {
        // handle error
    } else {
        console.log("Response: " + data);
    }        
});