Я пытаюсь использовать модуль узла 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");
}
});
Я пытаюсь выяснить, как узнать, что unzipper прошел через все файлы (то есть, больше не будет entry
событий) и все обработчики entry
завершены, так что я знаю, что завершил обработку всех файлов, которые мне нужны.
Я попытался поэкспериментировать с событиями close
и finish
но когда у меня есть, они оба срабатывают до того, как напечатает console.log("Uploaded");
, так что это не так.
Помощь?