2012-11-05 76 views
1

所以读完后我发现我需要一个闭包或者使用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。

回答

1

你可以用一个额外的匿名函数这样做,如果这就是你的意思是:

im.resize(options, function(err, stdout, stderr) { 
    callback(err, stdout, stderr, filename) // do something with filename 
}); 
0

我说你可以使用关闭,在你的回调,你可以做这样的事情:

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