반응형
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
반응형
'Program Tip' 카테고리의 다른 글
여러 코어를 자동으로 사용하는 R 패키지? (0) | 2020.11.24 |
---|---|
SVG에서 속이 빈 원 그리기 (0) | 2020.11.24 |
Google 글꼴이 Google 크롬에서 렌더링되지 않습니다. (0) | 2020.11.24 |
TypeScript-고정 길이 배열 (0) | 2020.11.24 |
파일 내에서 단일 바이트 청크를 어떻게 추출합니까? (0) | 2020.11.23 |