Node.js 仅处理流的前x个字节,保留流内容

Node.js 仅处理流的前x个字节,保留流内容,node.js,stream,Node.js,Stream,我有一个接受流的函数 function processStream(stream) { } 其他的东西在函数之后处理这个流,所以它需要保持不变。此函数只需要流的前20个字节(可能是千兆字节长)即可完成其处理。我可以通过: function processStream(stream) { const data = stream.read(20) return stream } 但是通过使用这20个字节,我们已经为将来的函数更改了流,所以我们重新组合了它。最快的方法是什么?最

我有一个接受流的函数

function processStream(stream) {

}
其他的东西在函数之后处理这个流,所以它需要保持不变。此函数只需要流的前20个字节(可能是千兆字节长)即可完成其处理。我可以通过:

function processStream(stream) {
    const data = stream.read(20)

    return stream
}

但是通过使用这20个字节,我们已经为将来的函数更改了流,所以我们重新组合了它。最快的方法是什么?

最后,我使用了
combined-streams2
来快速有效地组合我的流:

const CombinedStream = require('combined-stream2')

function async processStream(stream) {
  const bytes = stream.read(2048)

  const original = CombinedStream.create()
  original.append(bytes)
  if (!stream._readableState.ended) {
    original.append(stream)
  }

  return original
}