首页 > 解决方案 > Node.js 流:何时调用 _writev?

问题描述

_writevNode.js 文档对 Writable 流的方法进行了以下评论。

除了能够一次处理多个数据块的流实现之外或替代地,该writable._writev()方法可以被实现。writable._write()如果实现并且如果有来自先前写入的缓冲数据_writev()将被调用而不是_write().

强调我的。在什么情况下,Node.js 可写流可以缓冲先前写入的数据?

_writev方法是否仅在已写入数据的软木塞流之后调用?uncorking或者是否存在其他情况,流可以从以前的写入中缓冲日期?如果您可以指向 Node.js 源代码中它做出决定是否调用_write_writev.

标签: node.jsnode-streams

解决方案


_writev()每当从流中缓冲超过一条数据并且函数已定义时,将调用它。使用cork() 可能会导致更多数据被缓冲,但也会减慢处理速度

守卫的代码_writev lib/internal/streams/writable.js. 有一个缓冲区决定,然后是写保护。


推荐阅读