当前位置:首页 > 日记 > 正文

对流程介绍(流)在Node.js

对流程介绍(流)在Node.js
什么是河流

说到流量,它涉及在*nix *nix管道的概念,在壳的流程如|实施(关道付)的桥梁数据的一个过程的输出(stdout)可以直接作为一个过程的输入(stdin)。

在节点中,流的概念与此类似,表示数据流被桥接的能力。



流化的本质在于管道()方法,桥接的能力是在管道()方法中桥接数据流的两端(上游/下游或读/写流)。
伪代码的形式如下:

复制代码代码如下所示:

(上游)管道(下游)

readable.pipe(写);
分类流程

它不打算讨论经典流之前所谓的节点v0.4.then,流量分为几类(所有的抽象接口:

1.stream.readable可读流(的_read方法需要实现,并重点对数据流中读取的细节

2.stream.writable写入流(的_write方法需要实施,并注重细节的数据流写入

3.stream.duplex可读/写流(你需要实现上述两个接口,并在上述两个接口细节的关注

4.stream.transform继承双工(的_transform方法需要实现,并重点对数据块的处理

简单的说:

1)管道()的所有者必须具有可读流量(不受限)的能力。它has'readable ' /数据/'或'关闭' / 'error'series事件订阅,和阅读()/(),暂停/恢复()被调用。

2)管道()的参数必须具有可写流(不受限)的能力。它has'drain ' / 'pipe ' / 'unpipe '错误' / / 'finish'events访问和写()/(),最后打电话。

什么鬼

有焦虑的线索吗不要着急。我会打破流,并作为一个低级别的代码工人拉你。

流类,这是在js源代码定义的,是:

复制代码代码如下所示:

VaR是需要('eventsEventEmitter);

VaR工具=需要('util);

util.inherits(流,EE);
函数流(){

ee.call(本);

}
你可以看到,在本质上,流是EventEmitter,这意味着它有一个事件驱动的功能(发出 /,…)。我们都知道,Node.js是基于V8事件驱动的平台,实现事件驱动的异步回调的节点特征流编程。

例如,在可读流中,有可读事件。在暂停只读流中,只要数据块准备好读取,它将被发送到订阅服务器。可读的流是什么该请求的req.part、FTP或多在表达形式上传,系统中的标准输入,process.stdin,等与可读性的事件,我们可以做一个工具如处理shell命令的输出分析器:

复制代码代码如下所示:

process.stdin.on('readable,函数(){(){

VaR buf = process.stdin.read();

如果(BUF){

VaR数据= buf.tostring();

解析 /数据…

}

});
这就要求:

复制代码代码如下所示:

头10 some.txt节点parser.js |
对于可读流,我们也可以订阅它的数据和结束事件以获取数据块,并在流耗尽时获得通知,如在经典套接字示例中。

复制代码代码如下所示:

Req.on('connect功能(RES,插座,头){

Socket.on(数据功能(块){

console.log(chunk.tostring());

});

Socket.on(函数(){(){

Proxy.close();

});

});
可读流状态切换

需要注意的是,可读流有两种状态:流动模式(种子)和暂停模式(停顿)。前者不能停止的话,谁会被保存在管立即,后者将暂停直到下游stream.read是显式调用读取数据块的。可读流初始化暂停模式。

这两种状态可以互相切换,其中,

任何下列行为,停顿转流:

1。将数据事件订阅添加到可读的流中

2。可读调用。

三.将可读的流和桥接器的管道(可写)调用到可写流。

如果有以下行为,流动就会回到停顿状态:

1、可读流没有任何流的管道,可调。暂停()暂停

2。可读流管流,需要清除掉所有的数据事件订阅,并调用。Unpipe()由一个解除下游流动的方法之一。

神奇的

结合流的异步特性,我可以编写应用程序:直接将用户A的输出桥接到用户的B页面。

复制代码代码如下所示:

Router.post(后功能(REQ,RES){

VaR目标=请求标头{ 'destination}; / /人

{ } =请求目的地缓存;

是的,不返回,所以最好是Ajax请求。

});
当用户B请求时:

复制代码代码如下所示:

router.get( /收件箱功能(REQ,RES){

无功用户= { }标题用户的要求;

Cache.find(用户、功能(呃,previousreq){ / /找到之前的存款要求

新的多方形式;

form.parse(previousreq); / /文件给我。

形式。('part功能(部分){

part.pipe(RES); / /流法):
部分。(错误功能(ERR){

console.log(ERR);

Messaging.setRequestDone(UniqueID);

返回res.end(ERR);

});

});

});

});
参考资源

如何用流编写节点程序:流手册

相关文章

ps处理中常用的19种基本快捷方式

ps处理中常用的19种基本快捷方式

快捷方式,常用,电脑软件,ps,下面是ps用于处理图片的19个基本快捷方式。它值得新来者收藏。让我们看看最常用的快捷方式。 快捷键的使用可以迅速提高我们的工作效率,和PS图像处理,它是利用快捷键必不可少。以下萧边为您带来19基本快捷键PS图…

JS字符串完全替换函数共享

JS字符串完全替换函数共享

字符串,函数,替换,电脑软件,JS,这几天已经用JS字符串完全替换函数了,没什么要说的,直接在代码上,需要抄走: 复制代码代码如下所示: 功能teststr(){ VaR的温度= document.getelementbyid(内容)的价值; Var(新= temp.replace / / g,); 警报(新内容); } …

PS图象处理软件增加了一个生动自然

PS图象处理软件增加了一个生动自然

图象,处理软件,生动,增加了,效果,本教程介绍一个朋友使用PS图象处理软件增添生动的户外婚礼电影效果和自然云的天空。教程制作的天空云彩很漂亮,难度也不大。 好漂亮,英俊,非专业的后期后青蛙再次遇见你,看着你所有的步伐,你忍不住要鼓掌,然后我…

PHP浏览历史的方法

PHP浏览历史的方法

方法,浏览,历史,电脑软件,PHP,本文介绍了php程序记录历史记录的方法,供大家参考,具体的实现方法如下: *商品历史浏览记录 *数据商品记录信息 * / 私有函数_history($数据) { 如果($数据| |!is_array($数据))! { 返回false; } 确定是否有cookie浏览。 如…

ps显示所有层的2个快捷键

ps显示所有层的2个快捷键

快捷键,显示,电脑软件,ps,我们有时间在网上下载PSD文件,他们中的许多人都隐藏在一层白板,但我们计划显示浏览方便所有层。如果我们点击一层手动,太麻烦,效率太低。 介绍了在ps中显示所有图层的方法,以及所有图层快捷键的ps显示。 我们有时间在…

用PS画一个健康的机器人白色,以提高

用PS画一个健康的机器人白色,以提高

画一,可能性,白色,健康,电脑软件,当一个男人向他的女朋友坦白时,他成功了,使他成为了温暖和温暖的代表。如果他能画一幅大画,写他或她自己的自白,也会增加成功的几率吗 最近,男人做了一个大白,向女友告白,并成功了,让大白再次成为了萌发和温暖的代…

js在网页上添加背景音乐和选择声音

js在网页上添加背景音乐和选择声音

网页,方法,选择,背景音乐,声音,本文介绍JS如何将背景音乐添加到网页中,并选择声音效果,供大家参考,具体的实现方法如下: 复制代码代码如下所示: 在网络中添加背景音乐并选择声音效果 一个{字体大小:30pt;颜色:蓝色;字体:VINETA BT } 答:链接{文字装…

jsp显示文本长问题的解决方案

jsp显示文本长问题的解决方案

显示,解决方案,文本,电脑软件,jsp,复制代码代码如下所示: 标题:uff1a 70 }> $ {fn:子串(schedule.content情商null'no:schedule.content,0,70)}… $ { schedule.content null'no:计划内容}。 $ { schedule.content情商null'no:计划内容}。 功能s…

淘宝艺术课程PS图象处理软件自行车

淘宝艺术课程PS图象处理软件自行车

产品,淘宝,图象,处理软件,课程,这是一个淘宝艺术课程。这是介绍PS图象处理软件自行车产品的维修和处理方法。本教程的介绍更为详细。淘宝艺术家学习很合适。推荐朋友一起学习教程。 这是给你的淘宝艺术课程。本教程以自行车为例,重点介绍了P…

该hasclass分析()的jQuery源代码的方

该hasclass分析()的jQuery源代码的方

方法,源代码,电脑软件,hasclass,jQuery,本文给出了更详细的分析()hasclass jQuery源代码解释方法。分享给你供你参考。具体分析如下: 复制代码代码如下:jquery.fn.extend({ HasClass:功能(选择){ / /检查选择器类名称指定的类名,jQuery对象数组的…

Javascript函数节流的探讨

Javascript函数节流的探讨

函数节流,电脑软件,Javascript,在浏览器中的一些计算和处理比其他的贵得多。例如,DOM操作要求比非DOM交互更多的内存和CPU时间。做太多的DOM相关业务不断的尝试可能会导致浏览器挂了,有时甚至崩溃,这是特别容易使用伊江onresize事件处理程序,和…

对http.createserver方法在Node.js

对http.createserver方法在Node.js

使用说明,方法,电脑软件,http,createserver,方法显示: 此功能是用来创建一个HTTP服务器和使用requestlistener作为听力功能的请求事件。 Grammar: 复制代码代码如下所示: http.createserver({ requestlistener }) 由于此方法属于HTTP模块,所…