วัน: 11 พฤศจิกายน 2018

TypeScript: Promise แบบขนานTypeScript: Promise แบบขนาน

TypeScript Mastery: การจัดการ Promise แบบขนานเพื่อประสิทธิภาพสูงสุด

ในโลกของการพัฒนาซอฟต์แวร์สมัยใหม่ที่เน้นประสบการณ์ผู้ใช้แบบเรียลไทม์ ความสามารถในการทำงานร่วมกันของระบบอะซิงโครนัสจึงเป็นหัวใจสำคัญ TypeScript ซึ่งสร้างอยู่บนพื้นฐาน JavaScript ได้นำเสนอ Promises เพื่อช่วยให้การเขียนโค้ดที่ไม่ต้องรอคอยผลลัพธ์ตามลำดับได้อย่างปลอดภัย อย่างไรก็ตาม เมื่อเรามีงานหลายอย่างอิสระต่อกันที่เราต้องการเรียกใช้งานพร้อมๆ กัน เช่น การดึงข้อมูลจาก API หลายแหล่ง หรือการประมวลผลชุดคำสั่งจำนวนมาก Promise ทั่วไปอาจไม่ตอบโจทย์ด้านความเร็ว

💡 ปัญหาคอขวดของการดำเนินการต่อเนื่อง

หากเรากำหนดให้ Task A, B และ C เป็นภารกิจที่เป็นอิสระต่อกันและไม่มีข้อผูกพันเชิงตรรกะใด ๆ ต่อกัน หากใช้วิธี `.then()` ซ้อนติดกัน (Chaining) โค้ดจะถูกบังคับให้อำนวยความสะดวกโดยส่งผ่านค่าทีละขั้นตอน นั่นหมายถึงแม้ว่าแต่ละ task จะเสร็จได้รวดเร็วกว่าเวลาหน่วงรวม แต่ตัวโปรแกรมหลักจะต้องหยุดชะงักเพื่อ ‘เฝ้ารอ’ ให้ Tasks เหล่านั้นจบลงเรียงตามลำดับ ทำให้เกิดปัญหาที่ทราบในชื่อ