0

我想让 http.get 下载图像文件列表。我有一个 for 循环来遍历列表并用代表保存位置的字符串填充变量 file_savedest。所以 http.get 在每次循环迭代时都会被调用,我如何将 file_savedest 输入 http.get 以便它知道要下载和保存的文件。

    var file_savedest = dir+"/"+iname;

    http.get(options, function(res){
        var imagedata = '';
        res.setEncoding('binary');

        res.on('data', function(chunk){
            imagedata += chunk
        });

        res.on('end', function(){
            fs.writeFile(file_savedest, imagedata, 'binary', function(err){
                if (err){
                    console.log(err);
                } else {
                    console.log("File:" + file_savedest + " saved");
                }
            });
        });
    });
4

1 回答 1

2

使用闭包

(function(file_savedest){
    http.get(options, function(res){
        var imagedata = '';
        res.setEncoding('binary');

        res.on('data', function(chunk){
            imagedata += chunk
        });

        res.on('end', function(){
            fs.writeFile(file_savedest, imagedata, 'binary', function(err){
                if (err){
                    console.log(err);
                } else {
                    console.log("File:" + file_savedest + " saved");
                }
            });
        });
    });
}(dir+"/"+iname));
于 2012-04-27T02:21:28.007 回答