我正在阅读文档并且有这样的描述,但我不明白这意味着什么。
所有可读流实现必须提供_read方法以从底层资源获取数据。
此方法以下划线为前缀,因为它是定义它的类的内部,不应由用户程序直接调用。但是,您应该在自己的扩展类中重写此方法。
当数据可用时,通过调用readable.push(chunk)将其放入读取队列。如果push返回false,那么你应该停止阅读。再次调用_read时,您应该开始推送更多数据。
底层资源是什么? 你何时会实际指定一个_read函数,这意味着它的用途是什么?
答案 0 :(得分:5)
_read()
函数用于通知可读流尚未到达highWaterMark
,并且流可以随意从底层资源中读取更多数据。传递给_read()
的参数是对从基础资源中读取的字节数(或objectMode
的项数)的建议。
文档中提到的底层资源是指任何数据源。它可以是任何东西,包括另一个可读流,也可以是您动态生成的数据(例如,提供随机二进制数据的可读流)。