0
我有一個由XHR填充的JSON對象。然後我需要使用來自單獨的XHR調用的值來更新該對象。我遇到的問題是第二次調用不是在正確的時間進行的,我認爲這是我如何構建對象的問題。這裏是我有:JSON對象XHR和閉包
function Proprietary()
{
var proprietary= this;
this.Groups = {};
this.getGroups = function()
{
$.getJSON(group_url, function(data){proprietary.callReturned(data);});
}
this.callReturned = function(data)
{
//Do stuff
for(var i=0; i< data.groups.length; i++)
{
insparq.Groups[i] = data.groups[i];
$.getJSON(participant_url, function(p){proprietary.Groups[i].participants = p;});
}
//the function call below is the action I want to occur after the object is populated.
PopulateGroups();
}
};
我認爲你在一個名爲'proprietary'的函數內命名一個名爲'proprietary'的變量可能會導致一些問題,你不覺得嗎? – 2010-12-13 06:41:39
'PopulateGroups'在所有'$ .getJSON(participant_url ...')被調用之前,您需要檢查您使用外部計數器加載的參與者數量,並檢查它是否與'proprietary.Groups' '$ .getJSON(participant_url ...'回調函數,只有當它們相等時,你應該調用'PopulateGroups'。 – 2010-12-13 06:50:09
謝謝,Horia。在哪裏/如何增加計數器? – 2010-12-13 06:57:33