2017-03-22 7 views

답변

2

setTimeout는 이해가되지 않습니다, 당신은 요구 사항, 특히 함께, 타이머

var timeoutId = setTimeout(myfunction(), interval); 
clearTimeout(timeoutId); 
+1

직접 기능을 실행하는 대신에 참조를 전달함으로써, 타임 아웃이 존중하지 않고에서는 setTimeout 아무 효과가 없다 : -

예를 참조은 아무런 변화가 없음을 알 수 있습니다. 시간 초과가 간격과 같기 때문에이 오류를 제거하면 함수가 실행되지 않습니다. – baao

+0

그래,하지만 그것은 단지 당신이 – mic4ael

1

에게 코드를 중지 나중에 사용할 수있는 timeoutID 값을 반환합니다. 첫째, 당신은

setTimeout(myfunction, 1000); 

은 그렇지에서는 setTimeout 전혀 영향을주지 않습니다와 기능은 단지 시간 제한없이 실행됩니다, 직접 실행하는 대신 setTimeout에 함수에 대한 참조를 전달해야합니다.

이제이 오류를 수정하면 setIntervalsetTimeout의 간격이 같습니다. setInterval 틱이 나타날 때마다 setTimeout에 전달 된 함수의 실행을 중단하려면 지정한 동일한 간격으로 인해 setTimeout이 인터럽트되고 실행되지 않습니다. 다음 틱은 기능을하기 전에 기능을 중지합니다.

var interval = 1000; 
 

 
setInterval(function(){ 
 
    var i = setTimeout(myfunction, interval) 
 
    clearTimeout(i); 
 
}, interval); 
 

 
function myfunction() { 
 
\t console.log("you'll never see me"); 
 
}

+0

매우 좋은 시간 제한을 어떻게 지울 수 있는지 예입니다. 이해해. –

+0

나에게 보여줄 수 있습니까? 논리를 만들 수 없기 때문에. –