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

เมธอด writable.cork() และ writable.uncork() ใน Node.js


เมธอด writable.cork() ใช้บังคับให้ข้อมูลที่เขียนทั้งหมดถูกเก็บไว้ในหน่วยความจำบัฟเฟอร์ ข้อมูลที่ถูกเก็บไว้นี้จะถูกนำออกจากบัฟเฟอร์ก็ต่อเมื่อมีการเรียก stream.uncork() หรือ stream.end()

ไวยากรณ์

cork()

writable.cork()

uncork()

writable.uncork()

พารามิเตอร์

ไม่มีพารามิเตอร์เพิ่มเติม เนื่องจากเมธอดเหล่านี้ทำงานโดยการควบคุมการเก็บข้อมูลในบัฟเฟอร์

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

สร้างไฟล์ชื่อ cork.js และรันคำสั่ง:

node cork.js

cork.js

// โปรแกรมสาธิตเมธอด writable.cork()
const stream = require('stream');

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

// เขียนข้อมูลก่อน cork() - จะแสดงผลทันที
writable.write('Hi - This data is printed');

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

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

ผลลัพธ์

C:\home\node>> node cork.js
Hi - This data is printed

มีเพียงข้อมูลที่เขียนก่อน cork() เท่านั้นที่แสดงผล ข้อมูลที่เหลือจะถูกเก็บไว้ในบัฟเฟอร์ ตัวอย่างต่อไปแสดงวิธีใช้ uncork() เพื่อปล่อยข้อมูล

ตัวอย่างที่ 2: การใช้งาน uncork()

สร้างไฟล์ uncork.js:

// โปรแกรมสาธิตเมธอด 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 is printed');
writable.cork();
writable.write('Welcome to TutorialsPoint !');
writable.write('SIMPLY LEARNING ');
writable.write('This data will be corked in the memory');

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

ผลลัพธ์

C:\home\node>> node uncork.js
Hi - This data is printed
Welcome to TutorialsPoint !
SIMPLY LEARNING
This data will be corked in the memory

ข้อมูลทั้งหมดจะแสดงผลเมื่อบัฟเฟอร์ถูกปล่อยโดยใช้ uncork()