เมื่อวานทำการเขียน blog สำหรับลองใช้งาน Async/Await ด้วยภาษา Kotlin
ก็ไปเห็นว่าใน NodeJS 7.6 ขึ้นไปนั้น
สามารถใช้งาน Async/Await ได้เลย
ไม่ต้องมาใส่ flag hamony ในการ run แล้ว
เนื่องจาก Google V8 version 5.5 ได้ทำการเพิ่ม Async function เข้ามานั่นเอง

ตอนนี้ NodeJS version 7.7.1 แล้วนะ

ดังนั้นลองมาใช้ดูกันหน่อยสิ

เป้าหมายหลักของ Async function

เพื่อเรียกใช้ code ที่เขียนด้วย Promise ได้ง่าย
โดยใน function สามารถใช้ await เพื่อรอการทำงานของ Promise
ส่งผลทำให้เขียน flow การทำงานแบบ Asynchornous ให้ดูเหมือน Synchornous
ทำให้ code อ่านง่ายยิ่งขึ้น
ที่สำคัญตัดเรื่องของ callback function ไปได้เลย

มาดูตัวอย่างกันนิดหน่อย

เป็นการปรับจาก Promise มาเป็น Async/Await
เป็นการดึงข้อมูลจาก REST API ของ Github

เริ่มจาก Promise กันก่อน

ถ้า process การทำงานยาว ๆ หรือซับซ้อน

การใช้งาน Promise ก็ทำให้มึนงงหรือเกิดปัญหาได้
ดังนั้นถ้าต้องการวิธีการที่ง่ายและเรียบง่ายกว่า
หนึ่งในนั้นคือ Async/Await นั่นเอง
สามารถเขียนได้ประมาณนี้

จะเห็นได้ว่าวิธีการต่าง ๆ เกิดมาจากการแก้ไขปัญหาทั้งสิ้น

คำถามคือ ต่อไปคืออะไร ?

Callback -> Promise -> Generators(coroutine) -> Async/await -> ?

สวัสดี ขอให้สนุกกับการเขียน code ครับ

Source code ตัวอย่างอยู่ที่ Github::Up1::NodeJS Async/Await

Reference Website
https://www.reddit.com/r/programming/comments/5vi1j0/node_76_with_asyncawait_marking_a_huge_step/?st=izve0nqd&sh=057a8413