【发布时间】:2020-01-29 05:01:14
【问题描述】:
我正在尝试使用 unzipper 节点模块来提取和处理一些文件(具体数量未知)。但是,我似乎无法弄清楚如何知道所有文件何时被处理。到目前为止,我的代码如下所示:
s3.getObject(params).createReadStream()
.pipe(unzipper.Parse())
.on('entry', async (entry) => {
var fileName = entry.path;
if (fileName.match(someRegex)) {
await processEntry(entry);
console.log("Uploaded");
} else {
entry.autodrain();
console.log("Drained");
}
});
我正在试图弄清楚如何知道解压缩器已经遍历了所有文件(即,没有更多的 entry 事件即将发生)并且所有 entry 处理程序都已完成,所以我知道我已经完成了我关心的所有文件的处理。
我尝试过使用 close 和 finish 事件进行试验,但是当我尝试时,它们都会在 console.log("Uploaded"); 打印之前触发,所以这似乎不对。
帮助?
【问题讨论】:
标签: node.js unzip synchronous