有没有办法在NodeJS中重用一系列管道转换?

时间:2014-10-06 16:19:48

标签: node.js stream

例如,如果我有

readableStream.pipe(ws1).pipe(ws2).pipe(ws3)

如何在单个函数中包含该转换链,然后在另一个转换链中重用它?

我想这样做:

var transformationChain1 = readableStream.pipe(ws1).pipe(ws2).pipe(ws3)
readableStream2.pipe(transformationChain1).pipe(endWs)

2 个答案:

答案 0 :(得分:3)

你可以使用

var combine = require('stream-combiner2')
var ws = combine(ws1, ws2, ws3);
readableStream2.pipe(ws).pipe(endWs);

答案 1 :(得分:0)

也许我误解了(我的Node.js生锈了,所以它完全有可能),但为什么不完全按照你说的做并将其包装在一个函数中呢?

function transformationChain(rs) {
  return rs.pipe(ws1).pipe(ws2).pipe(ws3);
}

var transformationChain1 = transformationChain(readableStream);
readableStream2.pipe(transformationChain1).pipe(endWs);