【问题标题】:Adding extra parameters to a callback向回调添加额外参数
【发布时间】:2012-10-25 17:20:13
【问题描述】:

所以在阅读之后,我发现我需要一个闭包或使用 bind,但我并不完全清楚正确的语法以及我应该使用哪个。

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

语法是:

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那样。

【问题讨论】:

    标签: javascript node.js closures


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2015-08-27
        • 2021-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-01
        • 1970-01-01
        相关资源
        最近更新 更多