该调用是异步的,因此您应该提供一个加载微调器,然后通过填充您收到的数据将其删除。
function test() {
var t=this;
//show loading spinner
$.getJSON('~.php?task=getFolders&dummy='+new Date().getTime(), function(returned){
t.folders=returned;
//hide loading spinner
//add data to document
});
}
test.prototype.getIt = function() {
return this.folders;
};
var myObj = new test();
console.log(myObj.getIt());
如果您想在某些点初始化后运行代码而不包括回调,即在您的 ajax 请求中,一种跨浏览器解决方案是不断检查以下代码,
function runCode(selector,theMethod,timeInMillis){
if($(selector).length>0){
theMethod();
}else{
setTimeout(function(){runCode(selector,theMethod,timeInMillis);},timeInMillis);
}
}
runCode('.the-class-of-data',function(){
console.log(myObj.getIt());
},100);