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
}