2015-12-23 79 views
0

我需要弄清楚如何同步調用此函數。EXT js如何同步調用存儲

fetchData: function(recs){ 
    store = Ext.getStore('OutOfBalanceList'); 
    store.reload({ 
     params: { 
      startDate: searchForm.startDate, 
      endDate: searchForm.endDate, 
      cusip: searchForm.cusip, 
      account: searchForm.account 
     }, 
     callback: function (records, options, success) { 
      recs = records.length; 
      return recs; 
     } 
    }); 
}, 

我感謝所有關於異步的說教,但在這種情況下,我有,因爲當返回的數據是空的,我不得不使用不同的參數再打電話來使用同步調用。目前這最終是一個無限循環,因爲「recs」不會改變!

非常感謝

回答

1

不要試圖讓它同步。在你的回調方法中,用「不同的參數再次調用」。事情是這樣的:

fetchData: function(recs) { 
    var me = this; 
    store = Ext.getStore('OutOfBalanceList'); 
    store.reload({ 
    params: { 
     startDate: searchForm.startDate, 
     endDate: searchForm.endDate, 
     cusip: searchForm.cusip, 
     account: searchForm.account 
    }, 
    callback: function (records, options, success) { 
     if (records.length == 0) { 
     me.fetchDataWithDifferentParameters(); 
     } 
    } 
    }); 
} 

如果你要與JavaScript框架的工作,並呼籲外部數據源,然後學習如何使用回調是相當不錯的重要。

+0

我弄明白了,但感謝您的回答。看來EXTJS不支持同步呼叫。我=這個;絆了我一會兒。所以,我接受你的答案。順便問一下,你是我的老朋友來自皇后區的鮑勃沃特金斯嗎? – DeKoss

+0

你可以讓它做同步調用 - 代理可以配置爲使用同步AJAX支持(儘管這是不鼓勵的,並且瀏覽器對它的支持已被棄用)。但這是一個壞主意 - 整個瀏覽器在通話過程中被鎖定。從未去過皇后區;我住在澳大利亞。 –