본문 바로가기

Frontend/Javascript

clearInterval, setInterval (with RabbitMQ)

RabbitMQ 관련 설정 파일을 보다가 clearInterval, setInterval을 보게 되었다. 

이 두 가지가 무엇인지 알아보자.

 

setInterval(콜백함수,시간)

-> 시간(ms)을 간격으로 콜백함수를 반복 호출 

 

여기서 intervalID를 갖는데, 고유하게 interval을 식별하는 값이라고 생각하면 된다. 

clearInterval()은 고유 intervalID를 제거해서 반복 호출을 중단한다. 

 

 

setInterval 중단/재시작 방법 

1. setInterval() 함수의 반환값을 변수에 할당하여 반복 시작 
 let(or const) 변수 = setInterval(콜백함수,시간); 
 
2. clearInterval(변수)로 반복 중단 
 clearInterval(변수); 
 
3. setInterval() 함수의 반환값을 변수에 재할당하여 재시작 
 변수 = setInterval(콜백함수,시간);

예시 

// 1000ms마다 callback 함수 호출 가능
let interval = setInterval(callback, 1000); 

function callback() { 
    console.log('a'); 
} 

// 반복 해체 
clearInterval(interval); 

// 다시 반복 호출
interval = setInterval(callback,1000);



const intervalId = setInterval( () => { 
    if(this.runningMessages === 0) { 
       clearInterval(intervalId); // runningMessage가 없을때 반복 중단
       console.log('no running messages');
       resolve(); 
}

 

참고 
https://velog.io/@effort_jk/setInterval-clearInterval-%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%95%A8%EC%88%98-%EB%B0%98%EB%B3%B5-%EC%A4%91%EB%8B%A8-%EC%9E%AC%EC%8B%9C%EC%9E%91