1

したがって、読んだ後、クロージャーが必要であるか、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にアクセスする方法がわかりません。

4

2 に答える 2

1

それがあなたが意味するものであるならば、あなたは追加の無名関数でそれをすることができます:

im.resize(options, function(err, stdout, stderr) {
  callback(err, stdout, stderr, filename) // do something with filename
});
于 2012-11-05T20:11:29.087 に答える
0

クロージャを使用できると思います。コールバックでは、次のようなことができます。

var filename = 'myfile.jpg';
im.resize(options, function(err,stdout,stderr) {
    console.log('filename',filename,'err',err);
});
于 2012-11-05T20:14:32.177 に答える