所以在阅读之后我看到我需要一个闭包或者使用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那样。
答案 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);
});