我有以下这段代码:
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 命名空间。在这个命名空间中,我试图创建一个每秒轮询服务器的函数。我应该以这种方式访问此功能:stats.checkExistance(myUrl)
.
但是似乎 setInterval 函数无法看到该poll()
函数。考虑到这些嵌套在另一个函数中,我知道这是正常行为。
如果我要在 Global 命名空间中编写它,那将没有问题,但我有兴趣在这种命名空间中进行这项工作。有任何想法吗?谢谢!