向回调添加额外参数

时间:2012-11-05 20:01:33

标签: javascript node.js closures

所以在阅读之后我看到我需要一个闭包或者使用bind但是我并不完全清楚正确的语法以及我应该使用它。

我正在使用https://github.com/rsms/node-imagemagick中的imagemagick模块,需要将文件名传递给resize回调。

语法是:

var filename = 'myfile.jpeg';
im.resize(options, callback(err, stdout, stderr))

现在我希望我的回调接受额外的参数,例如文件名。

我希望能够调用另一个函数并将文件名和3个回调参数一起使用(另请注意,这是一个循环所以文件名来自数组 - 不确定是否重要)

所以我有一个回调函数:

var callback = function(err, stdout, stderr) {
    //how do I access filename?
}

我可以得到一个解释,我应该使用(闭包或绑定)和优点/缺点,如果是一个闭包,我将如何实际编写回调函数 - 我不清楚如何访问err,stdout和stderr in那样。

2 个答案:

答案 0 :(得分:1)

如果您的意思是:

,您可以使用额外的匿名函数来执行此操作
im.resize(options, function(err, stdout, stderr) {
  callback(err, stdout, stderr, filename) // do something with filename
});

答案 1 :(得分:0)

我会说你可以使用闭包,在你的回调中你可以这样做:

var filename = 'myfile.jpg';
im.resize(options, function(err,stdout,stderr) {
    console.log('filename',filename,'err',err);
});
相关问题