IT, 프로그래밍/Javascript

일정 시간이 지났는지 확인하는 함수

오리@ 2018. 12. 27. 14:05
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
function TimeChecker() {
 
        let startTime;
        const TIME_INTERVAL = 2000;
       this.validateOverInterval = function () {
 
                let endTime = new Date().getTime();
 
                if (endTime - startTime < TIME_INTERVAL) {
                    return false;
                } else if(!startTime || endTime - startTime >= TIME_INTERVAL) {
                    startTime = new Date().getTime();
                    return true;
                }
        }
 
    }
 
 
 
window.onload = function(){
 
        let timeCheckerTest = new TimeChecker();
        let testFlag = timeCheckerTest.validateOverInterval();
        console.log("체크를 시작합니다.");
 
        setTimeout(function(){
            testFlag = timeCheckerTest.validateOverInterval();
            if(!testFlag){
 
                console.log("현재 2초를 세고 있습니다.. 2초가 지나지 않았습니다.");
 
            }
 
        }, 1000);
 
        setTimeout(function(){
            testFlag = timeCheckerTest.validateOverInterval();
            if(testFlag){
 
                console.log("2초가 지났습니다.");
 
 
            }
 
        }, 3000);
 
}
cs



setTimeout 함수는 일정시간 동안 blocking 하는 함수지만 비동기로 작동한다.

위의 함수를 사용하면 실행 후 일정 시간이 지났는지 확인하여 원하는 기능을 일정 시간 후 동기식으로 수행할 수 있다.