Node.js 如何减慢/瓶颈`fs.createReadStream`用于调试的数据事件

Node.js 如何减慢/瓶颈`fs.createReadStream`用于调试的数据事件,node.js,websocket,stream,fs,Node.js,Websocket,Stream,Fs,我有文件块的fsreadstreamwhatdata事件。有没有办法让下一个事件触发能够调试它?我想在客户端制作进度条(流通过websockets向客户端发送数据),但一切都太快了,以至于我无法实际测试它 const readStream = fs.createReadStream("./test.jpg", { encoding: "binary" }); const chunks = []; readStream.on("

我有文件块的
fs
readstreamwhat
data
事件。有没有办法让下一个事件触发能够调试它?我想在客户端制作进度条(流通过websockets向客户端发送数据),但一切都太快了,以至于我无法实际测试它

 const readStream = fs.createReadStream("./test.jpg", { encoding: "binary" });
    const chunks = [];

    readStream.on("data", (chunk) => {
      // Emit chunk to connected socket
      socket.emit("data-chunk", chunk);
    });

您可以向ReadStream事件处理程序添加暂停,以降低其速度:

function sleep(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}
const readStream = fs.createReadStream("./test.jpg", { encoding: "binary" });

readStream.on("data", async (chunk) => {
  // Emit chunk to connected socket
  socket.emit("data-chunk", chunk);
  await sleep(1000);
});

您可以向ReadStream事件处理程序添加暂停,以降低其速度:

function sleep(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}
const readStream = fs.createReadStream("./test.jpg", { encoding: "binary" });

readStream.on("data", async (chunk) => {
  // Emit chunk to connected socket
  socket.emit("data-chunk", chunk);
  await sleep(1000);
});

暂停流,然后在延迟后继续:

readStream.on("data", function (chunk) {
      // Emit chunk to connected socket
      socket.emit("data-chunk", chunk);

      readStream.pause();
      setTimeout(function () { readStream.resume(); }, 1000);
    });

暂停流,然后在延迟后继续:

readStream.on("data", function (chunk) {
      // Emit chunk to connected socket
      socket.emit("data-chunk", chunk);

      readStream.pause();
      setTimeout(function () { readStream.resume(); }, 1000);
    });