栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从两个管道流创建Node.js流

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从两个管道流创建Node.js流

您可以查看要传送到流中的内容,然后将其传送到您

unpipe
感兴趣的流中:

var PassThrough = require('stream').PassThrough;var stream3 = new PassThrough();// When a source stream is piped to us, undo that pipe, and save// off the source stream piped into our internally managed streams.stream3.on('pipe', function(source) {  source.unpipe(this);  this.transformStream = source.pipe(stream1).pipe(stream2);});// When we're piped to another stream, instead pipe our internal// transform stream to that destination.stream3.pipe = function(destination, options) {  return this.transformStream.pipe(destination, options);};stdin.pipe(stream3).pipe(stdout);

您可以将此功能提取到自己的可构造流类中:

var util = require('util');var PassThrough = require('stream').PassThrough;var StreamCombiner = function() {  this.streams = Array.prototype.slice.apply(arguments);  this.on('pipe', function(source) {    source.unpipe(this);    for(i in this.streams) {      source = source.pipe(this.streams[i]);    }    this.transformStream = source;  });};util.inherits(StreamCombiner, PassThrough);StreamCombiner.prototype.pipe = function(dest, options) {  return this.transformStream.pipe(dest, options);};var stream3 = new StreamCombiner(stream1, stream2);stdin.pipe(stream3).pipe(stdout);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/608751.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号