【问题标题】:Node.js: wait for zip file to be generated and send responseNode.js:等待 zip 文件生成并发送响应
【发布时间】: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 已生成,然后继续进行进一步处理。

谢谢。

【问题讨论】:

标签: javascript node.js node-archiver


【解决方案1】:

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

【讨论】:

  • 我确实使用了解决/拒绝,但该过程只是挂起并且没有完成
  • 您是否尝试过使用带有 resolve/reject 和 zip.zipcsv(path).then(console.log) 的 Promise 函数;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 2015-12-05
  • 2022-10-12
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
相关资源
最近更新 更多