프로그래밍 언어/NODE JS

타이머

· 코딩마이데이

타이머 기능을 제공하는 함수인 setTimeout, setInterval, setImmediate는 노드에서 window 대신 global 객체 안에 들어 있습니다.

  • setTimeout(콜백 함수, 밀리초) : 주어진 밀리초(1,000분의 1초) 이후에 콜백 함수를 실행합니다.
  • setInterval(콜백 함수, 밀리초) : 주어진 밀리초가 콜백 함수를 반복 실행합니다.
  • setImmediate(콜백 함수) : 콜백 함수를 즉시 실행합니다.

이 타이머 함수들은 모두 아이디를 반환합니다. 아이디를 사용하여 타이머를 취소할 수 있습니다.

  • clearTimeout(아이디) : setTimeout을 취소합니다.
  • clearInterval(아이디) : setInterval을 취소합니다.
  • clearImmediate(아이디) : setImmediate를 취소합니다.

timer.js

const timeout = setTimeout(() => {
  console.log("1.5초 후 실행");
}, 1500);

const interval = setInterval(() => {
  console.log("1초마다 실행");
}, 1000);

const timeout2 = setTimeout(() => {
  console.log("실행되지 않습니다.");
}, 3000);

setTimeout(() => {
  clearTimeout(timeout2);
  clearInterval(interval);
}, 2500);

const immediate = setImmediate(() => {
  console.log("즉시 실행");
});

const immediate2 = setImmediate(() => {
  console.log("실행되지 않습니다");
});

clearImmediate(immediate2);

제일 먼저 실행되는 것은 immediate입니다. immediate2는 바로 clearImmediate를 사용해서 취소했으므로 실행되지 않습니다. 코드 실행 1초 후에는 interval의 콜백이 실행됩니다. 코드 실행 1.5초 후에는 timeout의 콜백이 실행될 것입니다. interval의 콜백은 1초마다 실행되므로 코드 실행 후 2초가 지났을 때도 콜백이 실행됩니다. 2.5초가 지났을 때 clearTimeout과 clearInterval이 각각 timeout2와 interval을 취소합니다. 따라서 코드 실행 3초 후에는 로그가 아무것도 남지 않습니다.

 

실행 순서

실행 콘솔
0 immediate
immediate2
즉시 실행
1 interval 1초마다 실행
1.5 timeout 1.5초마다 실행
2 interval 1초마다 실행
2.5 timeout2
interval
 

 

콘솔

$ node timer
즉시 실행
1초마다 실행
1.5초 후 실행
1초마다 실행

 

'프로그래밍 언어 > NODE JS' 카테고리의 다른 글

module, exports, require  (0) 2025.03.20
__filename, __dirname  (0) 2025.03.17
console  (0) 2025.03.12
global  (0) 2025.03.10
모듈로 만들기  (0) 2025.03.08