노드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 |