javascript - EXT js 如何同步调用Store

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

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

非常感谢

最佳答案

不要尝试使其同步。在回调方法中执行“使用不同参数再次调用”。像这样的事情:

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

关于javascript - EXT js 如何同步调用Store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34436377/

相关文章:

java - Vector 与 SynchronizedList 性能

java - 锁对象应该是易变的(同步块(synchronized block),类的多个实例)?

javascript - 验证 NumberField 的值,而不是长度

javascript - 动态更改图表上的 Sprite 文本

javascript - 如何从 rowediting 插件的 "allowBlank: false"配置中删除窗口错误消息

javascript - 段落上的 ckeditor 类未被识别

javascript - 单击另一个 tr 时,使用 javascript/jQuery 显示下一个 tr

javascript - 为什么我无法使用点语法访问返回的函数

javascript - 为什么将一种元素替换为另一种元素时,replaceChild() 会出现奇怪的行为?

android - 在 Android 应用程序中与服务器同步