에 중첩하여 setInterval에서 중첩 된 함수를 호출 나는 코드의 다음 조각 한 : 객체의 네임 스페이스 환경
var stats = {
....,
checkExistance :
function(url){
var newUrl = url.substring(0, url.lastIndexOf("/")) + "/asyncCheckChartExistance";
var xhrObj = stats.getXhr();
var poolInterval = setInterval("poll()", 100);
function poll(){
xhrObj.open("GET", newUrl, true);
xhrObj.send(null);
xhrObj.onreadystatechange = function(){
if(xhrObj.readyState === 4 && xhrObj.status === 200){
if (xhrObj.responseText.length === true){
console.log("Exists!");
clearInterval(poolInterval);
} else {
console.log("Not Yet!");
}
}
}
}
},
}
나는 통계 네임 스페이스를 만들었습니다. 이 네임 스페이스에서 매초마다 서버를 폴링하는 함수를 만들려고합니다. 이런 식으로이 함수에 액세스해야합니다 :
stats.checkExistance(myUrl)
.
그러나 setInterval 함수는 poll()
함수를 볼 수 없습니다. 나는 이것이 다른 함수 안에 중첩되어 있다는 것을 고려하여 정상적인 동작이라는 것을 알고있다.
전역 네임 스페이스에이 값을 쓰면 아무런 문제가 없지만 이런 종류의 네임 스페이스에서이 작업을 수행하는 데 관심이 있습니다. 어떤 아이디어? 감사!
그냥'setInterval (poll, 100);'잘 동작합니다. 여기를 감쌀 필요는 없습니다. 패턴은 하나 이상의 인수를 대상 함수에 전달하려는 경우에 유용하지만 여기서는 그렇지 않습니다. –
@ imeVidas true이지만, 하나의 함수를 호출하는 것 이상을 수행해야하거나 함수에 매개 변수를 전달해야하는 경우 익명의 함수가 필요합니다. – jbabey