节点流在处理之前就结束了

时间:2019-07-05 14:47:13

标签: node.js electron ipc

我将文件夹转换为使用readdirp流式传输。

let func = async (details, done, next) => {
const { stats } = details;
process.send({ msg: "data", details: details });
 done();
 next(null, details);
}};

 let stream = readdirp(pathname);
 var upload = () => {
  var queue = createQueue(50);
  let stream = es.map(async (data, next) => {
    queue.defer(async function(details, done) {
      func(details, done, next);    
    }, data);
  });
  return stream;
};

stream.on("end", () => {
  process.send({ msg: "killMe", details: {end : "end"} });
});

我正在父进程派生的子进程中运行此程序。因此只能使用process.send({ msg: "data", details: details });

将路径发送给父级

我通过从孩子那里得到的路径在父进程中上传文件。我面临的问题是 在我上载100个实际上直接具有1000000个文件的文件之前,孩子中的流非常渴望结束。

我怀疑是由于背压引起的。因为我发现这个issue与我类似。

如何解决这个问题?

  1. 做得对,一开始我尝试在主线程中读取目录,它可以工作,但挂起主线程会导致应用崩溃。因此将其作为子线程分开。现在速度,内存和应用程序崩溃都没有问题。

但是我面对这个,你们能帮我吗!!!

0 个答案:

没有答案
相关问题