ExtJS4:如何在重新加载存储时防止竞争条件?

ExtJS4:如何在重新加载存储时防止竞争条件?,extjs,store,conditional-statements,reload,race-condition,Extjs,Store,Conditional Statements,Reload,Race Condition,当我在第一次加载完成之前第二次加载我的TreeStore时,它失败了。TreeStore load()似乎不可重入 这就是我让第二个load()等待的原因: 问题是在我检查isLoading()和调用load()之间有一个竞争条件窗口 在ExtJS中加载TreeStore的正确方法是什么?知道以后可以重新加载它吗?Javascript在大多数情况下是单线程的,所以在这些检查之间不应该有任何方法加载存储,所以我认为您可以。Ext的代码在它们自己的源代码中进行此类检查,因此它可能是安全的 我喜欢每隔

当我在第一次加载完成之前第二次加载我的TreeStore时,它失败了。TreeStore load()似乎不可重入

这就是我让第二个load()等待的原因:

问题是在我检查isLoading()和调用load()之间有一个竞争条件窗口


在ExtJS中加载TreeStore的正确方法是什么?知道以后可以重新加载它吗?

Javascript在大多数情况下是单线程的,所以在这些检查之间不应该有任何方法加载存储,所以我认为您可以。Ext的代码在它们自己的源代码中进行此类检查,因此它可能是安全的


我喜欢每隔一段时间阅读一次javascript线程的更新。

谢谢,我不知道javascript是单线程的!那么没问题:)这里有一些关于同步事件的更多信息:
    loadStore: function(){

      var store=this.store;

      if (store.isLoading()) this.addListener({
        load: function(store,rec,success){
            this.loadStore()
        },
        single: true
      });
      else store.load();

    },