EXT js如何同步调用Store

时间:2015-12-23 13:04:46

标签: javascript synchronization extjs5 extjs6

我需要弄清楚如何同步调用这个函数。

    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;
        }
    });
},  

我很欣赏有关Async的所有讲道,但在这种情况下我必须使用同步调用,因为当返回的数据为空时,我必须使用不同的参数再次回调。目前这最终成为一个无限循环,因为“recs”不会在外面改变!

非常感谢

1 个答案:

答案 0 :(得分: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框架并调用外部数据源,那么学习如何使用回调非常重要。