Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

คุณสมบัติ writable.writableLength ใน Node.js


คุณสมบัติ writable.writableLength ใช้แสดงจำนวนไบต์หรือออบเจ็กต์ที่อยู่ในคิวและพร้อมจะถูกเขียน คุณสมบัตินี้ช่วยตรวจสอบข้อมูลตามสถานะจาก highWaterMark

ไวยากรณ์

writable.writableLength

ตัวอย่างที่ 1: การใช้งาน writableLength กับ cork()

สร้างไฟล์ชื่อ writableLength.js และคัดลอกโค้ดด้านล่าง:

node writableLength.js
// โปรแกรมสาธิตคุณสมบัติ writable.writableLength
const stream = require('stream');

// สร้าง Writable stream
const writable = new stream.Writable({
  write: function(chunk, encoding, next) {
    console.log(chunk.toString());
    next();
  }
});

// เขียนข้อมูล - ไม่อยู่ในคิวบัฟเฟอร์
writable.write('Hi - This data will not be counted');

// เรียกใช้ cork() เพื่อบังคับให้ข้อมูลถูกเก็บในบัฟเฟอร์
writable.cork();

// เขียนข้อมูลเพิ่มเติม (จะถูกเก็บในคิว)
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');
writable.write('This data will be corked in the memory');

// แสดงความยาวของคิวข้อมูล
console.log(writable.writableLength);

ผลลัพธ์

C:\home\node>> node writableLength.js
Hi - This data will not be counted
81

ข้อมูลที่ถูก cork() และอยู่ในคิวบัฟเฟอร์จะถูกนับและแสดงในคอนโซล

ตัวอย่างที่ 2: การใช้งาน uncork() เพื่อปล่อยข้อมูลจากบัฟเฟอร์

// โปรแกรมสาธิต writable.cork() และ writable.uncork()
const stream = require('stream');

const writable = new stream.Writable({
  write: function(chunk, encoding, next) {
    console.log(chunk.toString());
    next();
  }
});

writable.write('Hi - This data will not be counted');
writable.cork();
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');
writable.write('This data will be corked in the memory');

// แสดงความยาวคิวก่อน uncork
console.log(writable.writableLength);

// ปล่อยข้อมูลจากบัฟเฟอร์
writable.uncork();

// แสดงความยาวคิวหลัง uncork
console.log(writable.writableLength);

ผลลัพธ์

C:\home\node>> node writableLength.js
Hi - This data will not be counted
81
Welcome to TutorialsPoint !
SIMPLY LEARNING
This data will be corked in the memory
0

หลังจากเรียก uncork() ข้อมูลจะถูกปล่อยออกจากบัฟเฟอร์ ทำให้คิวไม่มีข้อมูลเหลืออยู่ จึงคืนค่าความยาวเป็น 0