generator function ของ nodejs





function* generator(i) {
  yield i;
  yield i + 10;
}

let gen = generator(10);

console.log(gen.next().value);
// expected output: 10

console.log(gen.next().value);
// expected output: 20



generator funcion เป็นฟังก์ชันที่ทำงานในแบบ pause และ resume ได้แปลว่าทำงานแบบสั่ง
ให้หยุดพักและสั่งให้ทำงานต่อได้  มีคำสั่งหลัก 2 คำสั่งคือ yeild กับ next สร้างฟังก์ชันแบบนี้ให้ใส่ * 
(เครื่องหมายดอกจันทร์นั่นแหละ ) ต่อท้าย การสั่ง next จะทำให้ฟังก์ชันหยุดการทำงานไปขณะนึงแล้ว
ส่งค่า yeild ออกมา  เมื่อมีการใช้คำสั่ง next อีกก็จะส่งค่า yeild ตัวถัดไปออกมา   ค่าจาก yield ที่ส่ง
ออกมาจากการใช้คำสั่ง next นั้นจะมีโครงสร้างเป็น json ดังตัวอย่างข้างล่างนี้  ที่ประกอบด้วย field ชื่อ 
done กับ value ทำให้โค้ดจากตัวอย่างข้างใช้ .value เพื่อแสดงผลลัพธ์ออกมา  เราจะใช้คำสั่ง next 
ได้ตามจำนวน yield ที่อยู่ในฟังก์ชัน  ถ้าใช้ next แล้ว yield ยังไม่หมดจะได้ผลลัพธ์ field done เป็น 
false แต่ถ้าใช้ไหมดแล้วจะได้ผลลัพธ์ field done เป็น true และ valie ได้ undefined



{
    done: boolean,
    value: yout_result
}


ความคิดเห็น