블록체인 sw개발자

[JS](타이머함수) setTimeout() , setInterval()

sang969 2023. 7. 11. 14:08

 

setTimeout()

setTimeout() 함수는 어떤 코드를 일정 시간 동안 기다리거나 지정한 후 실행 하는 함수이다.

setTimeout(() => console.log("2초 후 실행"), 2000);

//2초 후 실행

ex)

함수 안에 setTimeout() 함수를 넣고 A, B가 무한으로 출력 될 수 있게  만들 수 있다.

function funcA() {
  setTimeout(() => {
    console.log("A");
    funcB();
  }, 1000)
}
funcA();
function funcB() {
  setTimeout(() => {
    console.log("B");
    funcA();
  }, 1000)
}

 

 

ex2)

두개의 수를 인자로 받아 더한 값을 출력해주는 add()라는 함수에 인자로 3 과 4를 넘겨 2초를 기다린 후에 호출 할 수있다.

function add(x, y) {
  console.log(x + y);
}
setTimeout(add, 2000, 3, 4);

// 7(2초후)

※ clearTimeout()

함수를 호출하면 기다렸다가 실행될 코드를 취소 할 수 있습니다.

const timeout = setTimeout(() => {
   console.log("기다렸다가 실행")
}, 1000);

clearTimeout(timeout);
//아무 것도 출력 안됨

 

setInterval()

웹페이지의 특정 부분을 주기적으로 업데이트해줘여 하거나, 어떤 API로 부터 변경된 데이터를 주기적으로 받아와야 하는 경우가 있는데 이럴때는 자바스크립트의 setInterval() 함수를 사용할 수 있다.

 

setInterval(() => console.log(new Date()), 2000);

// (오늘 날짜와 시간 2초 단위로 끝없이 출력된다.)

 

ex)

숫자를 변수에 저장해놓고 2초 마다 1씩 증가시킬 수 있다.

let count = 0;
setInterval(() => console.log(++count), 2000);
// 1
// 2
// ...
// 10

 

※ clearInterval()

함수를 호출하면 코드가 주기적으로 실행되는것을 중단시킬 수 있다.