안녕하세요.
이번에는 Node.js의 TImer 메서드에 대하여 알아보겠습니다.
1. Timer 메소드
- setTimeout( 콜백 함수, 밀리초 )
- setInterval( 콜백 함수, 밀리초 )
- setImmediate( 콜백 함수 )
- clearTimeout( 아이디 )
- clearInterval( 아이디 )
- clearImmediate( 아이디 )
setTimeout 함수
- 다음과 같이 코드를 실행하면 바로 실행이 되지 않고, 설정한 밀리초 이후에 코드가 실행이 됩니다.
setTimeout(function() {
console.log("1.5초 후 실행");
}, 1500);
// 위 함수와 동일함, 문법 차이
setTimeout(() => {
console.log("1.5초 후 실행");
}, 1500);
2번째에 적어놓은 함수는 Arrow Function으로 ES6 신문법입니다.
Arrow Function 관련해서는 다른 좋은 글이 많으니 궁금하신 분은 찾아보시기 바랍니다.
코드를 실행해 보면 1.5초 후에 실행되는 것을 볼 수 있습니다.
작성되어 있는 1번 setTimeout 함수를 분해해서 본다면 2번 코드처럼 작성할 수 도 있습니다.
하지만 1번 코드처럼 사용하면 사용하면 익명 함수라고 해서 1번 사용하고 나면 재사용 할 수 없습니다.
2번 코드 처럼 사용하면 a() 함수는 계속 남아 있어서 다른 방식으로도 사용할 수 있기 때문에 상황에 따라 정해서 사용하시면 됩니다.
// 1번
setTimeout(function() {
console.log("1.5초 후 실행");
}, 1500);
// 이 함수를 합치면 위에 처럼 사용
// 위에 처럼 사용하면 익명 함수라고 해서 1번 사용하고 끝남
// 아래 처럼 사용하면 a() 함수가 계속 남아 있어서 사용 방법에 따라 다름
// 2번
function a() { console.log('1.5초후 실행'); }
setTimeout( a, 1500);
setInterval 함수
- 설정한 밀리초마다 코드가 반복 실행됩니다.
- setInterval 함수는 1번 실행 후 주기가 도는 게 아니라 바로 주기가 돈다고 보면 됩니다.
const func1 = setTimeout(function() {
console.log('1.5초 후 실행');
}, 1500);
const func2 = setInterval(function() {
console.log('1초마다 실행');
}, 1000);
func1은 1.5초 후 실행되고 종료되지만, func2는 1초마다 계속 실행됩니다.
setImmediate 함수
- 함수를 즉시 실행합니다.
const func1 = setTimeout(function() {
console.log('1.5초 후 실행');
}, 1500);
const func5 = setImmediate(() => {
console.log('func5 즉시 실행');
});
func5는 대기시간 없이 바로 실행되는 것을 볼 수 있습니다.
clearTimeout(), clearInterval()
- 각각 설정해 둔 setTimeout() 함수와, setInterval() 함수를 삭제합니다.
const func1 = setTimeout(function() {
console.log('1.5초 후 실행');
}, 1500);
const func2 = setInterval(function() {
console.log('1초마다 실행');
}, 1000);
const func3 = setTimeout(function() {
console.log('func3 실행');
}, 3000);
setTimeout(() => {
clearTimeout(func3);
clearInterval(func2);
}, 2500);
먼저 3초 후에 실행되는 func3 함수가 실행이 되지 않았습니다.
2.5초에 실행되는 clearTimeout(func3) 함수가 먼저 실행돼서 초기화시켰기 때문입니다.
그리고 1초마다 실행되던 func2 함수가 2.5초 후에 clearInterval(func2) 함수에 의해 종료된 것을 볼 수 있습니다.
clearImmediate( 아이디 )
- setImmediate로 등록한 함수를 초기화시킵니다.
const func5 = setImmediate(() => {
console.log('func5 즉시 실행');
});
clearImmediate(func5);
실행되었어야 하는 func5 함수가 실행되지 않은 것을 볼 수 있습니다.
이상으로 Node.js의 Timer 메서드에 대하여 알아보았습니다.
감사합니다.
'Node' 카테고리의 다른 글
[Node.js] 구조분해에 대하여 알아보기 (0) | 2023.02.06 |
---|---|
[Node.js] 실습코드 (0) | 2023.02.04 |
[Node.js] Node.js의 OS, Path 모듈에 대하여 알아보기 (0) | 2023.02.04 |
[Node.js] Node.js의 모듈 및 객체에 대하여 알아보기 (0) | 2023.02.02 |
[Node.js] Node.js에 대하여 알아보기 (0) | 2023.02.01 |