Javascript 对stream.Duplex进行超级分类时出现问题
我试图通过扩展stream.readable来实现一个可读的流 根据文档,我所要做的就是实现读取 我不明白的是,当在读时我没有数据时该怎么做,或者当我再次有数据时如何触发另一个对读的调用。我认为Readable中没有一个概念可以处理缓慢或延迟交付的数据。我可以看到_read是在调用管道函数之后被调用的 如果在_read中的任何时候,我都没有数据,我必须返回而不传递数据,而且似乎再也不会调用_read了。我试图在数据准备好后发出一个可读事件,但这不会触发对_read的调用 这个问题不仅发生在开始时,而且可能在我的源代码花时间交付时发生。stream.Readable不支持慢速源吗?\u read只是一个信号,让您知道可以/应该从上游源读取更多数据。当您将数据推送到流并推送返回false时,这一点最为重要。发生这种情况时,在再次调用_read之前,不应再推送任何数据 实际上,并没有什么可以阻止您在任何时候推送任何数量的数据,但如果您不检查推送的返回值并相应地对其执行操作,那么最终可能会在内存中缓冲过多的数据Javascript 对stream.Duplex进行超级分类时出现问题,javascript,node.js,stream,Javascript,Node.js,Stream,我试图通过扩展stream.readable来实现一个可读的流 根据文档,我所要做的就是实现读取 我不明白的是,当在读时我没有数据时该怎么做,或者当我再次有数据时如何触发另一个对读的调用。我认为Readable中没有一个概念可以处理缓慢或延迟交付的数据。我可以看到_read是在调用管道函数之后被调用的 如果在_read中的任何时候,我都没有数据,我必须返回而不传递数据,而且似乎再也不会调用_read了。我试图在数据准备好后发出一个可读事件,但这不会触发对_read的调用 这个问题不仅发生在开始时
此外,在继承/subclass Readable时,您需要确保在流实例的上下文中调用ES6类的超类构造函数或Readable构造函数,这是在您自己的构造函数中调用ES6类之前的类/原型继承,例如Readable.callthis,{/*可选的Readable settings*/}如果你认为还不够清楚,考虑向PR节点提交PR,措辞有所改变。有时,对于我们这些长期关注代码库的人来说,很难对第一次访问该项目的用户进行足够好的描述。