setTimeout과 setInterval을 이용한 호출 스케줄링, arrow function - 정리

👊0👊·2020년 7월 12일
0

일초 간격으로 숫자 출력하기

from에 명시한 숫자부터 to에 명시한 숫자까지 출력해주는 함수 printNumbers(from, to)를 만들어보세요. 숫자는 일 초 간격으로 출력되어야 합니다.

두 가지 방법을 사용해 함수를 만드셔야 합니다.

1.setInterval을 이용한 방법
2. 중첩 setTimeout을 이용한 방법

답안은 좀 별로라고 생각이 듬

function printNumbers(from, to) {
  let current = from;

  setTimeout(function go() {
    alert(current);
    if (current < to) {
      setTimeout(go, 1000);
    }
    current++;
  }, 1000);
}

// usage:
printNumbers(5, 10);
// 지연없이 실행
function printNumbers(from, to) {
  let current = from;

  function go() {
    alert(current);
    if (current == to) {
      clearInterval(timerId);
    }
    current++;
  }

  go();
  let timerId = setInterval(go, 1000);
}

printNumbers(5, 10);

내 방식이 훨씬 깔금한듯

function printNumbers(from, to) {
  setTimeout(function go(current) {
    console.log(current);
    if (current < to) {
      setTimeout(go, 1000,current+1);
    }
  }, 1000,from);
}
// 지연없이 실행 

arrow

출처: https://beomy.tistory.com/13 [beomy]

profile
ㅎㅎ

0개의 댓글