yield কীওয়ার্ড
yield কীওয়ার্ড জাভাস্ক্রিপ্টে জেনারেটর ফাংশন পজ (pause) এবং রিজিউম (resume) করতে ব্যবহৃত হয়। এক্সপ্রেশনটির মান জেনারেটর কলারের কাছে রিটার্ন হয়।
জেনারেটর ফাংশন সিনট্যাক্স
function* displayRank() {
var selPlayers = [1, 2, 3, 4];
for (var i = 0; i < selPlayers.length; i++) {
yield selPlayers[i]; // প্রতিটি ইটারেশনে ভ্যালু yield করে
}
}
জেনারেটর ব্যবহার
var rank = displayRank(); // জেনারেটর অবজেক্ট রিটার্ন
console.log(rank.next()); // { value: 1, done: false }
console.log(rank.next()); // { value: 2, done: false }
console.log(rank.next()); // { value: 3, done: false }
console.log(rank.next()); // { value: 4, done: false }
console.log(rank.next()); // { value: undefined, done: true }
জেনারেটরের বৈশিষ্ট্য
function*- স্টার (*) দিয়ে জেনারেটর ডিক্লেয়ার করা হয়yield- এক্সিকিউশন পজ করে, ভ্যালু রিটার্ন করেnext()- পরবর্তী ভ্যালু পেতে কল করা হয়- লেজি ইভ্যালুয়েশন (Lazy Evaluation) - ضرরূরতানুসার মান জেনারেট করে
- মেমরি ইফিশিয়েন্ট - বড় ডেটাসেট হ্যান্ডল করতে পারে
বাস্তব ব্যবহার
// Infinite sequence generator
function* idGenerator() {
let id = 0;
while (true) yield id++;
}
const gen = idGenerator();
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2