如何确认img文件复制,转换完成,using node.js

How to confirm the img file copy, conversion is completed, using node.js

在我的节点应用程序中fsgm复制和转换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');
    });
}

或者有没有更好的办法?完成复制、转换和删除。

如果您复制原始文件只是为了转换,则不需要这样做。您的转换可以很简单:

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));
}