提问者:小点点

node.js:等待zip文件生成并发送响应


我正在使用模块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,然后继续进行进一步的处理。

谢了。


共1个答案

匿名用户

需要在异步函数中使用Promise函数。 然后使用resolve和reject而不是return。