본문 바로가기
node.js

node.js Interval과 nextTick

by PudgeKim 2021. 5. 27.

노드js는 싱글스레드로 동작하며 콜스택이 비어져있을 때마다 task queue에 있는 콜백함수들을 가져와서 실행시킵니다.

그런데 특정 콜백함수의 우선순위를 높이고 싶다면 nextTick함수를 사용할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
import process from 'process'
 
 
setTimeout(() => {
    console.log('timeout')
}, 0)
 
process.nextTick(() => {
    console.log("I'm first")
})
cs

위처럼 원래라면 timeout이 먼저 발생하겠지만 nextTick함수를 통해 I'm first가 먼저 실행되게 됩니다.

 

다음은 Interval 함수입니다.

1
2
3
setInterval(() => {
    console.log('hello')
}, 1000)
cs

위 코드를 실행하게 되면 1초마다 hello가 출력됩니다. (for loop없이도 1초마다 계속 실행됩니다.)

만약 이를 특정 시간 후에 멈추고 싶다면 

1
2
3
4
5
6
7
8
const interval = setInterval(() => {
    console.log('hello')
}, 1000)
 
setTimeout(() => {
    console.log('timeout')
    clearInterval(interval)
}, 3000);
cs

이렇게 setTimeout과 함께 clearInterval에 interval 객체를 전달해주어 멈출 수 있습니다.
(3초후에 멈추게 됩니다.)

'node.js' 카테고리의 다른 글

노드js Buffer&Stream  (0) 2021.05.28
노드js 파일/파일경로 관리하기  (0) 2021.05.28