setInterval의 일정 조건에 대해 시간 변경이 가능할까요

조회수 4084회

안녕하세요. 퍼블리셔 취업 준비중인 백수입니다.

setInterval로 반복하는 코드를 만들었는데요.

최초 1회는 4초로 설정하고 두번째부터는 쭉 5초로 설정하고 싶은데

혹시, 조건에 해당되면 setInterval의 시간을 변경할 수 있을까요?

아래 소스는 제가 일단 위에 조건에 맞게 만들어봤습니다.

setTimeout(function(){
    motionTimer();
    setInterval(motionTimer,4000)
},3500)

이런식으로 만들면 돌아가긴 하더라고요.

근데 이렇게 만드는게 맞나 싶어서 질문드립니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 네 맞게 잘 만드셨습니다.

    혹시 setInterval 중간에 시간을 변경하고 싶다면 다음과 같이 setTimeout을 사용할 수도 있습니다.

    var count = 1;
    
    function myTimeoutFunction()
    {
        motionTimer();
    
        // 여기에 다른 조건이 들어갈 수 있습니다.
        var timeout = count == 1 ? 3500 : 4000; 
        setTimeout(myTimeoutFunction, timeout);
        count += 1;
    }
    
    myTimeoutFunction();
    
    • 오! 감사드립니다. 말씀해주신 부분도 응용해서 작성해봐야겠네요! 답변 감사드립니다~ 알 수 없는 사용자 2017.9.5 14:07

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)