multistream, 在另一个( streams2 ) 之后,一个流发出多个其他流

分享于 

3分钟阅读

GitHub

  繁體 雙語
A stream that emits multiple other streams one after another (streams2)
  • 源代码名称:multistream
  • 源代码网址:http://www.github.com/feross/multistream
  • multistream源代码文档
  • multistream源代码下载
  • Git URL:
    git://www.github.com/feross/multistream.git
    Git Clone代码到本地:
    git clone http://www.github.com/feross/multistream
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/feross/multistream
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    多媒体 travisnpmdownloadsjavascript style guide一个流,它将多个其他流逐个发送( )

    Sauce Test Status

    cat

    简单,健壮的streams2版本的组合流。 允许将多个流合并为单个流。 当第一个流结束时,下一个流开始,依此类推,直到所有流都被消耗。

    这里模块由 WebTorrent 使用,特别是创建种子。

    安装

    
    npm install multistream
    
    
    
    

    用法

    像这样使用 multistream:

    var MultiStream =require('multistream')var fs =require('fs')var streams = [
     fs.createReadStream(__dirname+'/numbers/1.txt'),
     fs.createReadStream(__dirname+'/numbers/2.txt'),
     fs.createReadStream(__dirname+'/numbers/3.txt')
    ]MultiStream(streams).pipe(process.stdout) // => 123

    你还可以使用 MultiStream.obj(streams) 创建对象模式流。

    要延迟创建流,请将它们包装在函数中:

    var streams = [
     fs.createReadStream(__dirname+'/numbers/1.txt'),
     function () { // will be executed when the stream is activereturnfs.createReadStream(__dirname+'/numbers/2.txt')
     },
     function () { // samereturnfs.createReadStream(__dirname+'/numbers/3.txt')
     }
    ]MultiStream(streams).pipe(process.stdout) // => 123

    或者,可以通过异步"工厂"函数创建流:

    var count =0;functionfactory (cb) {
     if (count >3) returncb(null, null)
     count++setTimeout(function () {
     cb(null, fs.createReadStream(__dirname+'/numbers/'+ count +'.txt'))
     }, 100)
    }MultiStream(factory).pipe(process.stdout) // => 123

    贡献者

    许可证

    麻省理工学院版权所有( c ) Feross Aboukhadijeh


    str  streams  EMIT  streams2  
    相关文章