Я пытаюсь сначала распаковать файл, а затем дождаться завершения распаковки файла перед тем, как перебрать каждый файл и загрузить его в корзину S3. Первая функция unzipPromise
работает нормально, и все распаковывается в соответствующем каталоге, но uploadS3Promise
вообще не работает. Я не получаю ошибок в этом процессе, он просто запускает и распаковывает файл и никогда не касается функции uploadS3Promise
.
function unzipInput(file, client, project_number, oldpath, newpath) {
path = `zips/${client}/${project_number}/${file}/`;
function unzipPromise() {
return new Promise((resolve, reject) => {
fse.mkdirsSync(path);
fs.rename(oldpath, newpath, err => {
if (err) {
throw err;
}
});
fs.createReadStream(newpath).pipe(unzip.Extract({ path }));
});
}
function uploadS3Promise() {
console.log("running");
return new Promise((resolve, reject) => {
// fs.unlinkSync(newpath);
fs.readdirSync(newpath).forEach(file => {
uploadToS3(file, client, project_number, path);
console.log(file, "test");
});
if (err) reject(err);
else resolve("success");
});
}
// New code with async:
(async () => {
try {
await unzipPromise();
await uploadS3Promise();
} catch (e) {
console.error(e);
}
})();
}