Node.js-এ writable.writableLength প্রপার্টিটি রাইটেবল স্ট্রিমের বাফার কিউ-তে লেখার জন্য প্রস্তুত বাইট বা অবজেক্টের সংখ্যা জানাতে ব্যবহৃত হয়। এটি highWaterMark থ্রেশহোল্ড অনুযায়ী ডেটা পরিদর্শনের কাজে লাগে।
সিনট্যাক্স
writable.writableLength
উদাহরণ ১: কорк (cork) ব্যবহার করে ডেটা বাফার করা
writableLength.js ফাইল তৈরি করে নিচের কোড চালান।
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');
// বাফার কিউ-তে থাকা ডেটার লেংথ প্রিন্ট
console.log(writable.writableLength); // 81 বাইট প্রিন্ট করবে
আউটপুট
Hi - This data will not be counted 81
cork() কল করার পর লেখা ডেটাগুলো বাফার কিউ-তে থাকে, তাই writableLength তাদের আকার দেখায়।
উদাহরণ ২: আনকорк (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');
console.log(writable.writableLength); // 81
// বাফার ফ্লাশ করা
writable.uncork();
console.log(writable.writableLength); // 0 (বাফার খালি হয়ে গেছে)
আউটপুট
Hi - This data will not be counted 81 Welcome to TutorialsPoint! SIMPLY LEARNING This data will be corked in the memory 0
uncork() কল করার পর বাফার করা ডেটা লিখে ফেলা হয়, তাই কিউ খালি হয়ে যায় এবং writableLength ০ রিটার্ন করে।