【发布时间】:2020-10-15 22:07:32
【问题描述】:
我正在使用模块 archiver 生成一个 zip 文件。在继续之前,我想等待生成 zip 文件。下面是代码的相关部分。
// create a file to stream archive data to.
const archiver = require('archiver');
const fs = require('fs');
async function zipcsv(zipPath) {
let output = fs.createWriteStream(zipPath);
let archive = archiver('zip', {
zlib: { level: 9 } // Sets the compression level.
});
output.on('close', function() {
return 'zip generating complete';
});
archive.pipe(output);
archive.directory('exports/', false);
archive.finalize();
}
module.exports.zipcsv = zipcsv;
zip = require('./zipcsv')
await zip.zipcsv(path);
console.log('futher processing');
我在控制台上看到了进一步的处理,并且该过程不会等待 zip 生成并继续。
如何确保 zip 已生成,然后继续进行进一步处理。
谢谢。
【问题讨论】:
-
你需要把
zipcsv变成一个promise函数,只是把async放在前面是不行的。
标签: javascript node.js node-archiver