我必须在可读事件处理程序中重复调用 Readable.read() 吗?

2024-03-26

假设我创建了一个名为的转换流Parser它可以像普通流一样写入,但可以作为对象流读取。我正在使用readable使用此转换流的代码的事件:

var parser = new Parser();
parser.on('readable', function () {
    var data = parser.read();
    console.log(data);
});

在这个事件处理程序中,我必须重复调用parser.read()?或者,将readable对于从我的变换流中推送的每个对象,它都会自行触发?


根据节点文档,“一旦内部缓冲区耗尽,当有更多数据可用时,将再次触发可读事件,” http://nodejs.org/docs/latest/api/stream.html#stream_event_readable所以如果你打电话read()只需一次,还有更多数据需要读取,您必须记住read()稍后再讲一些。

你可以打电话read()在 while 循环中(在“可读”事件处理程序内)直到返回 null,然后等待下一个“可读”事件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我必须在可读事件处理程序中重复调用 Readable.read() 吗? 的相关文章

随机推荐