📜  Node.js Stream writable.writableLength 属性(1)

📅  最后修改于: 2023-12-03 15:33:09.999000             🧑  作者: Mango

Node.js Stream writable.writableLength 属性

在 Node.js 中,Stream writable 对象可以通过 writableLength 属性获取当前可写入的字节数。

语法
writable.writableLength
描述

writableLength 属性返回一个表示目前可以缓冲而未被写入底层数据流(底层输出)的字节数,即缓冲区当前大小。如果写入数据流导致缓冲区大小超出高水位标记,则可用空间将变为负值。负值表示缓冲区内有部分数据未被写入底层数据流。

示例
const { Writable } = require('stream');

const writable = new Writable({
  write(chunk, encoding, cb) {
    cb();
  }
});

console.log(writable.writableLength); // 0

writable.write('hello world', (err) => {
  if (err) throw err;
  console.log(writable.writableLength); // 0,因为数据已经被写入底层数据流
});
注意事项

writableLength 属性可以用于确定当前缓冲区大小,以便在适当时候停止写入,并避免内存泄漏。但是在大多数情况下,应该避免直接读取和修改此属性的值。因为在进行数据写入时,Stream 引擎会自动管理缓冲区的大小和读写标记,以保证流操作的正确性和高效性。如果随意修改缓冲区大小,可能会破坏 Stream 的数据流动机制,导致意外行为和数据丢失。

参考