Javascript 如何使用node.js确认img文件拷贝、转换完成

Javascript 如何使用node.js确认img文件拷贝、转换完成,javascript,node.js,fs,Javascript,Node.js,Fs,在我的节点应用程序fs和gm中复制和转换img文件, 如何检查复制和转换特定流是否完整 例如:Img是图片url数组 for (var i = 0; i < Img.length; i++) { // copy img file , how to check this [i] img is copy complete fs.createReadStream('/' + Img[i]).pipe(fs.createWriteStream('/' + pngImg[i] + '

在我的节点应用程序
fs
gm
中复制和转换img文件, 如何检查复制和转换特定流是否完整

例如:Img是图片url数组

for (var i = 0; i < Img.length; i++) {
    // copy img file , how to check this [i] img is copy complete
    fs.createReadStream('/' + Img[i]).pipe(fs.createWriteStream('/' + pngImg[i] + '_copy.png');

    gm('/' + Img[i].'_copy.png')
        .stream('jpg', function (err, stdout, stderr) {
            fs.createWriteStream('/' + Img[i].jpg);
            stdout.pipe(writeStream);
        });  // conversion img png to jpg , how to check this [i] img is conversion complete


    fs.unlink('/' + Img[i] + '_copy.png'), function (err) {
        console.log('successfully deleted');
    });
}
for(变量i=0;i

或者是否有更好的方法?完成复制、转换和删除。

如果仅为转换而复制原始文件,则无需执行此操作。您的转换可以很简单:

var images = [
    'image1.png',
    'image2.png',
    'image3.png'
];

for (var i = 0; i < images.length; i++) {
    var file = images[i];
    var writeStream = fs.createWriteStream(__dirname + '/' + file + '.jpg');

    gm(__dirname + '/' + file)
        .stream('jpg')
        .pipe(writeStream)
        .on('finish', (function done(file) {
            console.log('done: ' + file);
        }).bind(null, file));
}
var图像=[
“image1.png”,
“image2.png”,
“image3.png”
];
对于(var i=0;i
完成后,流应发出事件“结束”。你能给我举个例子吗?thx~什么是GetReadableStreamName()函数,如何使用?我需要原始文件。转换原始文件将消失。谢谢!我尝试了,但我仍然想知道如何确认操作已完成。此绑定(null,file)的功能是什么?on('finish')
告诉您转换何时完成。我正在使用
.bind(null,file)
捕获file变量,如果我不这样做,它将记录
done:image3.png
3次(,the)。在bind(null,file)函数中,“null”参数是什么?如何使用参数。