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