writable.cork()
方法强制把所有写入的数据都缓冲到内存中。
当调用 [stream.uncork()
][] 或 [stream.end()
][stream-end] 方法时,缓冲的数据才会被输出。
writable.cork()
的主要目的是为了适应将几个数据快速连续地写入流的情况。
writable.cork()
不会立即将它们转发到底层的目标,而是缓冲所有数据块,直到调用 writable.uncork()
,这会将它们全部传给 writable._writev()
(如果存在)。
这可以防止出现行头阻塞的情况,在这种情况下,正在等待第一个数据块被处理的同时对数据进行缓冲。
但是,使用 writable.cork()
而不实现 writable._writev()
可能会对吞吐量产生不利影响。
也可参见:[writable.uncork()
]、[writable._writev()
][stream-_writev]。