Program Tip

setInterval 콜백이 한 번만 실행되는 이유는 무엇입니까?

programtip 2020. 11. 24. 19:24
반응형

setInterval 콜백이 한 번만 실행되는 이유는 무엇입니까?


제가 만든이 카운터가 있지만 영원히 실행되기를 원합니다. 정말 간단합니다. 여기서 제가 뭘 잘못하고 있습니까?

function timer() {
  console.log("timer!")
}

window.setInterval(timer(), 1000)

setInterval의 첫 번째 매개 변수로 함수 참조 대신 함수 호출을 사용했습니다. 다음과 같이하십시오.

function timer() {
  console.log("timer!");
}

window.setInterval(timer, 1000);

또는 더 짧습니다 (하지만 함수가 커지면 가독성도 떨어집니다).

window.setInterval( function() {
  console.log("timer!");
}, 1000)

setInterval다음과 같은 콜백과 함께 setTimeout 사용해야합니다 .

setInterval(timer, 1000);

또는 이름없는 함수 :

setInterval( function() { console.log("timer!"); }, 1000 );

코드가 작동하지 않는 이유-함수를 대괄호가있는 다른 함수에 인수로 전달할 때, 예 doSomething ( someFunc() )들어 함수 의 결과를 전달하는 것입니다.

함수가 객체로 전달 될 때 예 doSomething ( someFunc )들어 콜백을 전달합니다. 이 방법 someFunc은 참조로 전달되고 호출 함수의 어딘가에서 실행됩니다. 이것은 다른 언어의 함수에 대한 포인터와 동일합니다.

일반적인 실수는 w3schools에 표시된 대로이 두 기능을 사용하는 것 입니다. 이것은를 암시 적으로 호출합니다 eval.

참고 URL : https://stackoverflow.com/questions/10182714/why-does-the-setinterval-callback-execute-only-once

반응형