Promise คืออะไร – 12 พฤษภาคม 2569
จากนรกของ Callback สู่แสงสว่างที่เรียกว่า Promise: ประสบการณ์ตรงของคนเขียนโค้ด ย้อนกลับไปเมื่อประมาณ 7-8 ปีก่อน สมัยที่ผมเริ่มหัดเขียน JavaScript ใหม่ๆ สิ่งหนึ่งที่ทำให้ผมแทบอยากจะวางมือจากการเขียนโปรแกรมคือการจัดการกับ “ลำดับการทำงาน” ของโค้ดที่ต้องรอผลลัพธ์จากเซิร์ฟเวอร์ ในยุคนั้นเรายังไม่มีเครื่องมือที่หรูหราอย่างปัจจุบัน เราอยู่กับสิ่งที่เรียกว่า Callback Function ซึ่งถ้ามองเผินๆ มันก็ดูไม่มีพิษมีภัยอะไร แต่วันหนึ่งเมื่อโปรเจกต์เริ่มใหญ่ขึ้น ผมก็พบว่าตัวเองกำลังจมอยู่ในกองโค้ดที่ซ้อนกันจนหาจุดจบไม่เจอ ปัญหาที่ผมเจอคือ “Callback Hell” หรือที่เราเรียกกันเล่นๆ ว่าพีระมิดแห่งความตาย (Pyramid of Doom) มันคือสถานการณ์ที่ฟังก์ชัน A ต้องรอ B, B ต้องรอ C, และ C ต้องรอ D โค้ดจะเยื้องขวาไปเรื่อยๆ จนอ่านไม่รู้เรื่อง แถมการดักจับ Error ก็เป็นฝันร้าย เพราะเราต้องเขียน `if (err)` ในทุกชั้นของฟังก์ชัน จนกระทั่งผมได้รู้จักกับสิ่งที่เรียกว่า Promise มันไม่ได้เป็นแค่ฟีเจอร์ใหม่ แต่มันคือการเปลี่ยนวิธีคิด (Mindset)…