Cách kiểm tra xem hàm trong Javascript đã được setTimeout hay chưa

Em có làm thử một cái đồng hồ đếm ngược dùng setTimeout, khi click vào button thì đồng hồ sẽ chạy. Khổ nổi là nhấn 1 lần vào thì chạy ngon lành nhưng nhấn cái nữa thì đồng hồ nó đếm ngược rất nhanh :cold_sweat: . Em nghĩ là do hàm được setTimeout quá nhiều lần. Vậy mọi người cho em hỏi có cách nào kiểm tra xem hàm đã được setTimeout hay chưa để khỏi bị set quá nhiều lần :sweat_smile:

sao ko click 1 lần rồi disable cái button luôn

1 Like

Cho 1 biến chứa id return từ hàm setTimeout

Rồi sau đó mỗi lần click là

if(!clockID) {
 clockID = setTimeout(...);
}

với ID này cũng dễ clear hơn với hàm clearTimeout(id)

2 Likes

Theo mình thì bạn gắn cờ cho nút button để khi kích lần thứ 2 thì nó ngừng chạy nhé.

1 Like

Ok cảm ơn các bác, em làm được rồi.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?