延迟流
从溪流中缓冲事件,直到你准备好处理它们.
安装
npm install delayed-stream
使用量
以下示例显示如何写出延迟它的 http回声服务器 反应1000毫秒.
var DelayedStream = require('delayed-stream');
var http = require('http');
http.createServer(function(req, res) {
var delayed = DelayedStream.create(req);
setTimeout(function() {
res.writeHead(200);
delayed.pipe(res);
}, 1000);
});
如果你没有使用 Stream#pipe,也可以手动释放缓冲
调用的事件 delayedStream.resume()数字 :
var delayed = DelayedStream.create(req);
setTimeout(function() {
// Emit all buffered events and resume underlaying source
delayed.resume();
}, 1000);
执行情况
为了正确使用这个元流, 这里有一些你应该 了解执行情况.
事件缓冲/ 代理
联合国的所有事件 source 溪流被覆盖 source.emit
方法。 在节点执行一个全面事件听众之前,这是唯一的办法.
然而,延迟流仍然继续释放它捕捉到的所有事件
source,无论您是否已发布延迟流或
没有.
创建后, 延迟流将全部抓取 source 事件并将其存储于
内部事件缓冲器。 一次 delayedStream.release() 被称为,所有
缓冲事件在 delayedStream,事件缓冲是
清除。 在此之后,延迟流只是充当了底线的代名词
来源.
处理错误
错误事件 source 和任何其他事件一样,是缓冲/代理的.
不过, delayedStream.create 附加无操作 'error' 听众
source。这样您只需处理错误 delayedStream
对象,而不是两个位置.
缓冲限制
延迟流提供a maxDataSize 用于限制的属性
缓冲数据的数量。 为了保护你不受伤害 source
没有反应的流 source.pause(),此特性由
默认.
API 密码
延后Stream.create (来源, [可选 )
返回一个新的 delayedStream。可用选项有:
pauseStreammaxDataSize
这些属性的描述见下文.
延迟 Stream. source
这个 source 由此对象管理的流。 这是有用的,如果你是
通过你的 delayedStream 属性
编辑 source 对象.
延迟 Stream.pauseStream = 真实
是否暂停主线 source 调用时
DelayedStream.create()。在此之后修改此属性没有效果.
延迟 Stream.maxDataSize = 1024 * 1024
在排放之前要缓冲的数据量 error。 。 。 .
如果内源正在排放 Buffer 对象 maxDataSize
指的是字节.
如果内置源正在释放 JavaScript 字符串,大小是指 字符键.
如果你知道你在做什么, 你可以设置这个财产给 Infinity 改为
禁用此特性 。 您也可以在运行时修改此属性 .
延迟Stream.dataSize=0
数据缓冲量至今.
延迟 Stream. 可读
返回值的 ECMA5 获取器 source.readable。 。 。 .
延迟 Stream.resume ()
如果 delayedStream 至今尚未释放, delayedStream.release()
名为.
无论哪种情况, source.resume() 名为.
延迟 Stream. 暂停( )
电话 source.pause()。 。 。 .
延迟 Stream.pipe( 最高)
电话 delayedStream.resume() 然后将参数代为 source.pipe。 。 。 .
延迟 Stream. release () ()
释放和清除所有 缓冲至今的事件。 这样不行
恢复主线源, 使用 delayedStream.resume() 换句话说.
许可证
延迟流根据麻省理工学院的许可获得许可.