Node.js的异步实用程序回调函数未执行

时间:2012-06-25 12:21:28

标签: node.js asynccallback

我正在尝试为node.js使用async实用程序。以下是我的代码。控制台打印“In my func1”和“In my func2”。我也期望它打印“回调函数”,但它不会

var myfunc1 = function(callback) {
var a = 1;
console.log ("In my func1");
};
var myfunc2 = function(callback) {
var b = 2;
console.log ("In my func2");
};

models.Picture.prototype.relativeSort = function(viewer_location) {
console.log("Rel Sort");

var sortedPics = [];
var relsortedPics = [];

 // Finds all the pictures
 async.series([myfunc1(), myfunc2()],
 function(err, results){
    if(err) {
        throw err;
    }
 console.log("call back func");
    return a+b;
    });
 };

1 个答案:

答案 0 :(得分:2)

您需要使用callback参数,例如:

var myfunc1 = function(callback) {
    var a = 1;
    console.log ("In my func1");
    callback(null, 'test');
};

callback的第一个参数是错误,第二个是你要传递给最终处理程序的结果。

修改

我错过了另一个错误。这一行:

async.series([myfunc1(), myfunc2()],

应该是

async.series([myfunc1, myfunc2],

你不应该调用函数。你在告诉async:“嘿,接受这些功能并与他们做一些事情(异步)!”。