Yêu cầu thg 12 29, 2021 2:06 CH 156 0 1
  • 156 0 1
+1

setTimeout trong javascript

Chia sẻ
  • 156 0 1

Mình đang làm 1 project nodejs. Thì bị mắc khúc này, rất mong mọi người giúp đỡ.

Ví dụ có 1 biến boolean A = false. Mỗi lần A thay đổi thành true sau 10s thì chạy function B. Nhưng nếu đang trong thời gian đếm 10s mà đổi false rồi true 1 lần nữa thì đếm lại 10s rồi mới chạy function B.

Mình đã nghĩ tới việc dùng setTimeout. Mỗi khi A => true thì cancel biến setTimeout đang chạy (nếu có) và tạo biến setTimeout 10s mới để chạy function B. Mà chưa biết cách đúng để thực hiện.

Cảm ơn ạ!

Avatar TAMIX @tuananhbfs
thg 12 31, 2021 8:35 SA
function setA(Boolean){
A=Boolean;
 if(handler) clearTimeout(handler)
if(Boolean){
 handler = setTimeout(()=>{
                B();
       
        },10000);
}
}

1 CÂU TRẢ LỜI


Đã trả lời thg 12 30, 2021 1:57 SA
+1

Bạn thử ý tưởng này xem sao nhé, chúc thành công.

const _time = 10000;
let isClick = false;
var handler;
function clickSomeThink(){
         if(handler) clearTimeout(handler)
         isClick = true;
         handler = setTimeout(()=>{
               func b();
              isClick = false;
        },_time);
}
Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí