0
이렇게 주어진 함수. . .setTimout을 통해 자신을 호출하는 함수가 오버플로를 일으킬 수 있습니까?
function self_time() {
console.log('hi');
setTimeout(self_time, 1000);
}
잠재적으로 스택 오버플로가 발생할 수 있습니까? 나는 이것이 정확히 재귀 호출이 아니며 자바 스크립트가 비동기이지만, 리소스를 소모하지 않고 무한히 실행될 수 있다고 생각 하는가?
또한 이와 같은 try-catch 상황은 어떻습니까? . .
function try_it() {
try {
console.log('im trying something...');
} catch(e) {
//i failed so im going to try again in 1 second
setTimeout(try_it, 1000);
}
}
함수가 무기한 실패하고 있다고 말하면 리소스가 부족합니까?
나는 알고있다. setInterval은 대안이지만, 성공할 때 더 이상 간헐적으로 점검 할 필요가 없다.
나는 잘 모르겠지만, 당신은에 allways VAR'사용할 수 있습니다 intervalID = setInterval (function, 1000);'성공했을 때'clearInterval (intervalID);을 할 수 있습니다. 당신이 요구하는 것이 아니라는 것을 알고 있습니다. 그러나 항상 옵션입니다. –
감사합니다. – rbtLong
두 함수 모두 리소스를 소모하지 않고 무기한 실행할 수 있습니다. –