مشکل در درک کد خروجی مثال آخر Generator ها

پرسیده شده
فعالیت 989 روز پیش
دیده شده 439 بار
1

سلام و وقت بخیر خدمت استاد دادخواه خیلی ممنونم بابت تدریس عالیتون
یک مشکلی برای من در درک خروجی مثال آخر پیش اومده و نتوسنتم خوب درک کنم که داره داخل خروجی چه اتفاقی میفته.
 دقیقا داخل این تیکه کد زیر  که داریم خروجی میگیریم:  که مثلا چرا جواب ۴ در next بعدی قرار داره ولی در همون next اول ورودی خالی هست و در این حال که خالی هست yield به چه صورت داره مقدار 4 رو داخل متغیر قرار میده و همینطور چرا ۹ در next بعدی قرار داره یکم گیجم کرده و اینکه دقیقا دارن next ها به چه ترتیبی جلو میرن:
امیدوارم منظورم رو خوب رسونده باشم
خیلی ممنون

// بخشی که مشکل دارم
console.log(generator.next().value); // "2 + 2 = ?"

console.log(generator.next(4).value); // "3 * 3 = ?"

console.log(generator.next(9).done); // true
// کد کامل مثال
function* gen() {
    let ask1 = yield "2 + 2 = ?";

    console.log(ask1); // 4

    let ask2 = yield "3 * 3 = ?"

    console.log(ask2); // 9
}

let generator = gen();

console.log(generator.next().value); // "2 + 2 = ?"

console.log(generator.next(4).value); // "3 * 3 = ?"

console.log(generator.next(9).done); // true
فایل پیوست

امیرعلی طاهری
امیرعلی طاهری

28 مرداد 00