เริ่มตัวจับเวลาใน JavaScript
แม้ว่าฟังก์ชัน setTimeout จะไม่ได้ถูกออกแบบมา
สำหรับการสร้างตัวจับเวลา แต่เราก็ยังสามารถ
สร้างมันขึ้นมาได้ด้วยฟังก์ชันนี้ หากใช้ประโยชน์จาก
recursion:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
timer(); // เรียกตัวเอง
}, 1000);
}
timer();
การหยุดตัวจับเวลาดังกล่าวทำได้ง่ายๆ โดยไม่ให้ เกิด recursion ขึ้น:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
if (i < 10) { // เริ่มทำงานก็ต่อเมื่อตัวนับน้อยกว่า 10
timer();
}
}, 1000);
}
timer();
พิมพ์ตัวเลข 0 ไปยังคอนโซล หลังจากนั้น
หนึ่งวินาทีให้พิมพ์ตัวเลข 1 หลังจากสอง
วินาทีให้พิมพ์ตัวเลข 2 หลังจาก 3
วินาทีให้พิมพ์ตัวเลข 3 และทำเช่นนี้ต่อไป
เรื่อยๆ อย่างไม่สิ้นสุด