3
我有一個窗口包括許多組合與默認autoload = false。我想等我的窗口中的所有組合被加載後,我將展示窗前,彷彿Extjs 4.1 - 如何等待所有商店組合加載
var arrCombos = window.query('combo');
Ext.each(arrCombos, function(combo){
combo.getStore().load(); // load
});
WaitForFunction(arrCombos); // wait for loading done
window.show(); // show my window
這裏是我的WaitForFunction
function WaitForFunction(arrCombos) {
var all = 1;
Ext.each(arrCombos, function(combo){
if (combo.store.isLoading()) {
all = 0;
}
});
if (all == 0){
setTimeout(WaitForFunction(arrCombos), 100);
}
}
但是失敗了,那說too much recursion
我如何能做到這一點感謝。
'的setTimeout(WaitForFunction(arrCombos),100)'是'呼籲立即WaitForFunction'和返回值傳遞給'setTimeout'。你的意思是:'setTimeout(function(){WaitForFunction(arrCombos)},100)'。我認爲你的代碼會以這種方式工作......但是sra基於事件和計數器的方法更好,因爲它不會等待任何不必要的ms。 – rixo
@rixo是啊謝謝你。我的代碼運行,但它運行不好:)我使用sra的代碼,它很好 – freestyle