Skip to content

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 จะสามารถสร้างฟีเจอร์ที่ต้องหน่วงเวลา หรือทำงานซ้ำๆ ได้ง่าย

อ้างอิง