假设我创建了一个名为 Parser
的转换流,它可以像普通流一样写入,但作为对象流读取。我正在为使用此转换流的代码使用 readable
事件:
var parser = new Parser();
parser.on('readable', function () {
var data = parser.read();
console.log(data);
});
在这个事件处理程序中,我必须重复调用parser.read()
吗?或者,对于从我的转换流中推送的每个对象,readable
是否会自行触发?
最佳答案
根据 Node 文档,"Once the internal buffer is drained, a readable event will fire again when more data is available,"因此,如果您只调用了一次 read()
并且还有更多数据要读取,则您必须记住稍后再调用 read()
。
您可以在 while 循环中调用 read()
(在您的“可读”事件处理程序中)直到它返回 null,然后等待下一个“可读”事件。
关于node.js - 我必须在可读事件处理程序中重复调用 readable.read() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23452846/