Skip to content

Tag: node.js

Node.js | ข้อควรระวังการใช้งาน Async/Await กับ forEach()

หลายคนเข้าใจว่า function ใดๆ ที่รับ callback function เป็น parameter จะทำงานแบบ async เสมอ ซึ่งเป็นความเข้าใจที่ผิด (ผมก็เคยเข้าใจแบบนั้น) แต่บาง function ก็ทำงานแบบ synchrous นะครับ เช่น  forEach()  ที่เป็น built-in function ของ collection ใน JavaScript ก็ทำงานแบบ synchronous เช่นกัน ดู spec ที่นี่

สมมุติว่าผมต้องการ ใช้ async/await กับ forEach() ผมก็สามารถใช้งาน async กับ callback function ที่ส่งเข้าไป เพื่อให้ใช้ await ได้เช่นกัน ดูตัวอย่างโค้ดนี้ครับ

Node.js | ลองใช้งาน Async/Await กับ Node 7

Node 7 ออกแล้วนะครับ ตอนนี้รองรับ Es6 features ถึง 98% แล้ว ที่นักพัฒนาดูจะให้ความสนใจกันเป็นพิเศษคือสามารถใช้งาน async/await ซึ่งเป็น synctax  ของ Es7 ได้โดยไม่ต้องติดตั้งตัว transpile อย่าง Babel เพิ่มเติม

แต่ …. ยังไม่ได้เปิดใช้งานเป็นค่า default ถ้าอยากใช้ async/await ต้องใส่ option --harmony-async-await  ตอนรัน 

บันทึกการใช้งาน Socket.io v1 และประเด็นที่น่าสนใจ

ใครที่ใช้ Node.js ในการทำ real-time application น่าจะรู้จัก WebSocket และ Socket.io กันเป็นอย่างดี ตอนนี้ Socket.io เดินทางมาถึง version 1 แล้ว (ล่าสุดที่ผมเขียนโพสต์นี้คือ 1.5.0) ซึ่งก็มีหลายอย่างเปลี่ยนไปจากรุ่น 0.9 ค่อนข้างมาก หลายโปรเจกต์ที่ผมเคยเขียนไว้ด้วย version 0.9 ตอนนี้ก็ outdated ไปแล้วไม่สามารถใช้งาน version 1 ได้ แต่ก็มีบางงานที่ใช้ version 1 แล้ว พบประเด็นที่น่าสนใจเลยอยากบันทึกไว้สักหน่อย

Node.js | Test doubles ด้วย Sinon.js

การทำ unit test คือการทดสอบโค้ดโดยไม่สน dependencies ภายนอกอย่างเช่น database CRUD, Web services, APIs เพราะ unit test คือการทดสอบแค่การทำงานของฟังก์ชันนั้นๆ ว่าเป็นไปตาม flow ทำงานได้ถูกต้องตาม logic หรือไม่ เพื่อเป็นการลดความยุ่งยากเราจึงต้องจำลองการทำงานของโค้ดส่วนที่มีการติดต่อกับภายนอก