例如,我有这个:
var r = fs.createReadStream('file.txt');
var z = zlib.createGzip();
var w = fs.createWriteStream('file.txt.gz');
r.pipe(z).pipe(w);
我想在 r.pipe(z).pipe(w) 完成后做一些事情。我试过这样的事情:
var r = A.pipe(B);
r.on('end', function () { ... });
但它不适用于管链。 我怎样才能让它发挥作用?
最佳答案
您正在寻找 finish
事件。来自docs :
When the end() method has been called, and all data has been flushed to the underlying system, this event is emitted.
当源流发出 end
时,它会在目标上调用 end()
,在您的例子中,目标是 B
。所以你可以这样做:
var r = A.pipe(B);
r.on('finish', function () { ... });
关于javascript - 如何检查 node.js 中管道链的完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31964682/