如何知道 npm `unzip` 模块何时完成解压缩文件?

How to know when npm `unzip` module has finished unzipping file?

我正在使用 npm 的 unzip 模块来提取 zip 存档的内容。我需要知道什么时候完成解压并且文件已经完全写入磁盘。

我的代码:

fs.createReadStream('master.zip').pipe(unzip.Extract({ path: 'gitdownloads/repo' }));

我尝试过的:

我的第一个想法是我可以进入流并监听完成事件,但是 unzip 只接受输入:它不会 return 另一个流。

我还查看了 unzip 模块是否有 "finish" 回调。运气不好。

来自githubREADME

Extract emits the 'close' event once the zip's contents have been fully extracted to disk.

您需要执行以下操作:

fs.createReadStream('master.zip')
  .pipe(unzip.Extract({ path: 'gitdownloads/repo' }))
   .on('close', function () {
     ...
   });