JavaScript ရှိ Generator များအတွင်းရှိ ကွင်းဆက်များ
Generator များအတွင်း၌ ကွင်းဆက်များကို
အသုံးပြုနိုင်သည်။ ဤသို့ဖြင့် yield ကို
အသုံးပြု၍ ကွင်းဆက်များကို ခေတ္တရပ်နားထားနိုင်သည်။
ဥပမာတစ်ခုအား ကြည့်ရှုကြပါစို့။ ကွင်းဆက်၏
အကြိမ်တိုင်းတွင် ခေတ္တရပ်နားထားမည်။
function *func() {
for (let i = 1; i <= 3; i++) {
yield i;
}
}
Iterator ကိုရယူပါမည်။
let iter = func();
ကျွန်ုပ်တို့၏ iterator ၏လုပ်ဆောင်ချက်ကို စမ်းသပ်ကြည့်ပါမည်။
console.log(iter.next()); // {value: 1, done: false}
console.log(iter.next()); // {value: 2, done: false}
console.log(iter.next()); // {value: 3, done: false}
console.log(iter.next()); // {value: undefined, done: true}
Iterator တစ်ခုဖန်တီးပါ၊ ၎င်း၏ခေါ်ဆိုမှုတိုင်းသည်
10 မှ သုညအထိ ဂဏန်းများကို
ပြန်ပေးရမည်။
ဂဏန်းတစ်ခုကို parameter အဖြစ်လက်ခံမည့် generator တစ်ခုကို ပြုလုပ်ပါ။ Iterator ကို ခေါ်ဆိုတိုင်း သုညရောက်သည်အထိ ဂဏန်းအား တစ်ကြိမ်လျှင် တစ်ခုစီ လျှော့ချရမည်။
ဂဏန်းတစ်ခုကို parameter အဖြစ်လက်ခံမည့် generator တစ်ခုကို ပြုလုပ်ပါ။ Iterator ကို ခေါ်ဆိုတိုင်း ဂဏန်းအား နှစ်ဆစီစားပြီး ရလဒ်ကို ပြန်ပေးရမည်။ ဂဏန်းသည် တစ်ထက် ငယ်သွားသည်အထိ ဤသို့ပြုလုပ်ပါ။
Iterator တစ်ခုပြုလုပ်ပါ၊ ၎င်း၏ခေါ်ဆိုမှုတိုင်းသည် နှစ်၏နောက်ထပ် ထပ်ကိန်းတစ်ခုကို ပြန်ပေးရမည်။
Iterator တစ်ခုပြုလုပ်ပါ၊ ၎င်း၏ခေါ်ဆိုမှုတိုင်းသည် နောက်ထပ် Fibonacci ဂဏန်းတစ်ခုကို ပြန်ပေးရမည်။