如何链接Node.js中的另一个回调函数?

时间:2012-04-22 22:46:13

标签: node.js asynchronous callback chaining

我有一个node.js函数:

function myFunc(callback) {
    var ret = 50; // some time consuming calculation 
    return callback(random);
}

如果我无论如何都无法编辑此功能,该如何知道该功能何时完成。有没有办法将另一个回调函数链接到它上面。无论如何都没有编辑myFunc。

即。如果我正在使用:

async.forEach([1, 2, 3], function iter(myFunc(console.log), ????) {}, function(err){
    // if any of the saves produced an error, err would equal that error
});

我将什么作为迭代器?

当所有myFunc执行完毕后,如何知道传递控制?

2 个答案:

答案 0 :(得分:0)

myFunc(function(ret) {
  console.log("finished");
  console.log(ret);
});

答案 1 :(得分:0)

类似的东西:

// fn wraps myFunc
var fn = function(callback) {
    // myFunc isn't altered, it is called with callback function
    myFunc(function(random) {
       console.log('done');
       callback(random);
    };
};

async.forEach([1,2,3], fn(console.log));