Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

สวัสดี Async/Await ใน NodeJS

$
0
0

เมื่อวานทำการเขียน 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 กันก่อน [gist id="76c462894bb9583ce82e8ee52a1a6764" file="promise.js"]

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

การใช้งาน Promise ก็ทำให้มึนงงหรือเกิดปัญหาได้ ดังนั้นถ้าต้องการวิธีการที่ง่ายและเรียบง่ายกว่า หนึ่งในนั้นคือ Async/Await นั่นเอง สามารถเขียนได้ประมาณนี้ [gist id="76c462894bb9583ce82e8ee52a1a6764" file="async.js"]

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

คำถามคือ ต่อไปคืออะไร ?
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

Viewing all articles
Browse latest Browse all 1997

Trending Articles