Khởi động bộ đếm thời gian trong JavaScript
Mặc dù hàm setTimeout không được thiết kế
để tạo bộ đếm thời gian, tuy nhiên chúng ta vẫn có thể
tạo ra chúng bằng nó nếu sử dụng
đệ quy:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
timer(); // gọi lại chính nó
}, 1000);
}
timer();
Có thể dừng bộ đếm thời gian như vậy đơn giản bằng cách không cho đệ quy xảy ra:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
if (i < 10) { // chỉ khởi động nếu bộ đếm nhỏ hơn 10
timer();
}
}, 1000);
}
timer();
In ra console số 0. Sau
một giây in ra số 1, sau hai
giây in ra số 2, sau 3
giây in ra số 3. Và cứ tiếp tục như vậy
đến vô tận.