Dark mode
Timers Module (ตัวจับเวลา)
ทำไม Timers ถึงสำคัญ?
Timers คือฟีเจอร์สำคัญใน Node.js สำหรับควบคุมเวลา เช่น ตั้งให้โค้ดทำงานหลังผ่านไป X วินาที หรือทำซ้ำทุกๆ Y วินาที มือใหม่ควรรู้จัก Timers เพื่อสร้างฟีเจอร์ที่ต้องหน่วงเวลา หรือวนซ้ำอัตโนมัติ
- ใช้ timers สร้าง delay, countdown, หรือ task scheduler
- เหมาะกับงาน async ที่ต้องรอเวลา เช่น polling, auto-save
- เข้าใจ timers แล้วจะต่อยอดไปใช้กับ event loop ได้
แนะนำ Timers module
Timers เป็นกลุ่มฟังก์ชัน built-in ของ Node.js ได้แก่ setTimeout, setInterval, setImmediate
ฟังก์ชันหลักที่ใช้บ่อย
setTimeout(fn, delay)
รันฟังก์ชันหลังจาก delay (ms) ครั้งเดียว
js
// ใช้ ES Modules (ESM)
// setTimeout/setInterval เป็น global ใช้ได้เลยใน Node.js
setTimeout(() => {
console.log("ครบ 2 วินาทีแล้ว!");
}, 2000);
อธิบายทีละบรรทัด (ESM):
- setTimeout รับฟังก์ชัน callback และเวลาหน่วง (ms)
- ในตัวอย่างนี้จะรอ 2 วินาทีแล้วจึงแสดงข้อความ
setInterval(fn, delay)
รันฟังก์ชันซ้ำๆ ทุก delay (ms)
js
setInterval(() => {
console.log("แสดงผลทุก 1 วินาที");
}, 1000); // ทุก 1 วินาที
clearTimeout(timer)
ยกเลิก setTimeout
clearInterval(timer)
ยกเลิก setInterval
ตัวอย่างการใช้งานจริง
- แสดงข้อความต้อนรับหลัง login 2 วินาที
- นับถอยหลังทุก 1 วินาที
- ทำ auto-save ข้อมูลทุก 5 นาที
อธิบายการทำงาน
- setTimeout: ทำงานครั้งเดียวหลังเวลาที่กำหนด
- setInterval: ทำงานซ้ำๆ ทุกช่วงเวลาที่กำหนด
- clearTimeout/clearInterval: ยกเลิก timer ได้
สรุป
Timers คือเครื่องมือควบคุมเวลาการทำงานของโค้ดใน Node.js ถ้าเข้าใจ timers จะสามารถสร้างฟีเจอร์ที่ต้องหน่วงเวลา หรือทำงานซ้ำๆ ได้ง่าย