TimerCounterTool.js
1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// //////////////////////////////////////////////////////////////////////////////
// 计时器
// //////////////////////////////////////////////////////////////////////////////
class TimerCounterTool {
constructor() {
this.timer=0;
this.delay=1000;
this.counter=0;
this.callBackDelay=1;//回调间隔,单位(秒)
this.callBackFun=null;//回调函数
this.isStart=false;
}
addTimerCallBack(_callBackFun,_callBackDelay){
this.callBackFun=_callBackFun;
this.callBackDelay=_callBackDelay;
}
//开计时
startTimer(_position=0) {
if(this.isStart) return;
this.isStart=true;
if(_position&&parseInt(_position)>0){
this.counter=_position;
}else {
this.counter=0;
}
console.log("startTimer",this.counter);
this.timerClear();
this.timerStart();
}
//停止
stopTimer(){
if(!this.isStart) return;
console.log("stopTimer",this.counter);
this.isStart=false;
this.timerClear();
}
//计数
updateCounter(){
this.counter++;
//this.counter++;
//console.log("TimerCounter",counter);
if(this.callBackFun!=null&&this.counter%this.callBackDelay==0){
this.callBackFun();
}
}
timerStart(){
this.timer= setInterval(this.updateCounter.bind(this), this.delay);
}
timerClear(){
clearInterval(this.timer);
}
}
export default TimerCounterTool;