如果可能的话,我想通过管道将两个Node.js流组合成一个.我正在使用Transform流.
换句话说,我希望我的图书馆能够myStream让人们使用.例如,他们可以写:
process.stdin.pipe(myStream).pipe(process.stdout);
Run Code Online (Sandbox Code Playgroud)
在内部,我正在使用第三方vendorStream做一些工作,插入我自己的逻辑中myInternalStream.那么上面的内容将转化为:
process.stdin.pipe(vendorStream).pipe(myInternalStream).pipe(process.stdout);
Run Code Online (Sandbox Code Playgroud)
我可以这样做吗?我试过了,var myStream = vendorStream.pipe(myInternalStream)但显然不起作用.
换句话说bash,假设我想编写一个程序,检查字母h是否出现在某个stream(tail -n 1 | grep h)的最后一行,我可以创建一个shell脚本:
# myscript.sh
tail -n 1 | grep h
Run Code Online (Sandbox Code Playgroud)
如果人们这样做:
$ printf "abc\ndef\nghi" | . myscript.sh
Run Code Online (Sandbox Code Playgroud)
它只是有效.
这是我到目前为止:
// Combine a pipe of two streams into one stream
var util = require('util')
, Transform = require('stream').Transform;
var chunks1 = [];
var stream1 = new Transform();
var soFar = '';
stream1._transform …Run Code Online (Sandbox Code Playgroud)