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 하는 함수지만 비동기로 작동한다.
위의 함수를 사용하면 실행 후 일정 시간이 지났는지 확인하여 원하는 기능을 일정 시간 후 동기식으로 수행할 수 있다.