Node.js 在流完成之前调用节点unzippers Finish

Node.js 在流完成之前调用节点unzippers Finish,node.js,asynchronous,stream,unzip,node-streams,Node.js,Asynchronous,Stream,Unzip,Node Streams,我有以下功能,可以接收压缩流,解压并上传到S3: export const unzipAndUpload = async (stream) => stream .pipe(unzipper.Parse()) .on("entry", async entry => { await uploadToS3( await entry.buffer(), entry.path ); console.log(

我有以下功能,可以接收压缩流,解压并上传到S3:

export const unzipAndUpload = async (stream) =>
  stream
    .pipe(unzipper.Parse())
    .on("entry", async entry => {
      await uploadToS3(
        await entry.buffer(),
        entry.path
      );
      console.log("ENTRY", entry.path)
      entry.autodrain();
    })
    .on("finish", () => {
      console.log("FINISH")
    })
    .promise();
当前,首先调用
FINISH
,然后继续打印
条目
日志

我如何才能真正判断这条流是否真的结束了
uploadToS3
需要一个缓冲区,所以我需要等待并同步执行某些操作-这很好。但是,如何确保所有文件都已上载


提前谢谢

node的哪个版本?我在12号执行了这个,我收到了预期的行为,完成了一个叫做“结束”的任务!哇,真有趣。运行8.7.0。你能试试这个吗?