Javascript Node.JS-如何有条件地停止管道流

Javascript Node.JS-如何有条件地停止管道流,javascript,node.js,stream,Javascript,Node.js,Stream,我是java脚本和nodejs的新手 我有一个文件处理流,它是由多个流拼凑在一起组成的。非常好…我想通过在达到阈值时有条件地停止流的处理和读取来增强这一点 inputStream. pipe(unzip()). pipe(latin1Decoder). pipe( combine( through(function(obj){ //part-1 -

我是java脚本和nodejs的新手

我有一个文件处理流,它是由多个流拼凑在一起组成的。非常好…我想通过在达到阈值时有条件地停止流的处理和读取来增强这一点

    inputStream.
    pipe(unzip()).
    pipe(latin1Decoder).
    pipe(
         combine(
                 through(function(obj){
                      //part-1 -
                      this.push(obj);
                      }),
                 through(function(obj){
                      //part-2-
                      this.push(obj);
                      })
         ));
part-1
中,如果我执行
此操作,则组合器将忽略传入的输入

然而,我无法停止阅读文件。这很烦人,因为文件太大了


对于我来说,从管线内部访问输入流以关闭它的最佳方式是什么?

好的,下面是我如何解决它的:

    var cnt = 0;
    var processingStream = combine(unzip(), latin1Decoder(), part1(), part2());
    inputStream.pipe(processingStream);
    inputStream.on('data', function(x) {
      var lineCnt = x.toString().split(/\r\n|\r|\n/).length;
      cnt += lineCnt;
      if (cnt > 5) {
        inputStream.close();
        inputStream.unpipe(processingStream);
        processingStream.end();
      }          
    });
也许不是最有效的方法,但它符合我的要求


请注意,inputstream以块形式读取,因此一次读取多行。

Hi@mscdex,这如何帮助我停止读取输入流?