可读流的_read函数在nodejs中有什么作用?

时间:2014-08-22 14:50:39

标签: node.js stream

我正在阅读文档并且有这样的描述,但我不明白这意味着什么。

  

所有可读流实现必须提供_read方法以从底层资源获取数据。

     

此方法以下划线为前缀,因为它是定义它的类的内部,不应由用户程序直接调用。但是,您应该在自己的扩展类中重写此方法。

     

当数据可用时,通过调用readable.push(chunk)将其放入读取队列。如果push返回false,那么你应该停止阅读。再次调用_read时,您应该开始推送更多数据。

底层资源是什么? 你何时会实际指定一个_read函数,这意味着它的用途是什么?

1 个答案:

答案 0 :(得分:5)

_read()函数用于通知可读流尚未到达highWaterMark,并且流可以随意从底层资源中读取更多数据。传递给_read()的参数是对从基础资源中读取的字节数(或objectMode的项数)的建议。

文档中提到的底层资源是指任何数据源。它可以是任何东西,包括另一个可读流,也可以是您动态生成的数据(例如,提供随机二进制数据的可读流)。