เมธอด 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()