Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

สตรีมคุณสมบัติที่เขียนได้.writableLength ใน Node.js


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

ไวยากรณ์

writeable.writableLength

ตัวอย่างที่ 1

สร้างไฟล์ที่มีชื่อ – writableLength.js และคัดลอกข้อมูลโค้ดด้านล่าง หลังจากสร้างไฟล์แล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้โค้ดนี้ดังแสดงในตัวอย่างด้านล่าง −

node writableLength.js
// Program to demonstrate writable.writableLength method
const stream = require('stream');

// Creating a data stream with writable
const writable = new stream.Writable({
   // Writing the data from stream
   write: function(chunk, encoding, next) {
      // Converting the data chunk to be displayed
      console.log(chunk.toString());
      next();
   }
});

// Writing data - Not in the buffer queue
writable.write('Hi - This data will not be counted');

// Calling the cork() function
writable.cork();

// Again writing some data
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');
writable.write('This data will be corked in the memory');
// Printing the length of the queue data
console.log(writable.writableLength);

ผลลัพธ์

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

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

ตัวอย่าง

ลองดูอีกตัวอย่างหนึ่ง

// Program to demonstrate writable.cork() method
const stream = require('stream');

// Creating a data stream with writable
const writable = new stream.Writable({
   // Writing the data from stream
   write: function(chunk, encoding, next) {
      // Converting the data chunk to be displayed
      console.log(chunk.toString());
      next();
   }
});

// Writing data - Not in the buffer queue
writable.write('Hi - This data will not be counted');

// Calling the cork() function
writable.cork();

// Again writing some data
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');
writable.write('This data will be corked in the memory');

// Printing the length of the queue data
console.log(writable.writableLength);

// Flushing the data from buffered memory
writable.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