ExtJS 4: Как предотвратить гонку при перезагрузке магазинов? - PullRequest
0 голосов
/ 04 ноября 2011

Когда я загружаю свой TreeStore второй раз, прежде чем первая загрузка будет завершена, он не будет работать.TreeStore load () не кажется реентерабельным.

Так вот, что я делаю, чтобы вторая загрузка () ждала:

    loadStore: function(){

      var store=this.store;

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

    },

Проблема в том, что существуетокно для состояния гонки между временем, когда я проверяю isLoading (), и временем, когда я вызываю load ().

Как правильно загрузить TreeStore в ExtJS, зная, что его можно перезагрузить позже?

1 Ответ

0 голосов
/ 04 ноября 2011

Javascript, по большей части, однопоточный, поэтому не должно быть никакого способа загрузить хранилище между этими проверками, так что я думаю, что вы в порядке. Код Ext делает подобные проверки в своем собственном исходном коде, поэтому он, вероятно, безопасен.

Мне нравится читать ответы на этот вопрос каждый раз в какое-то время, чтобы освежить в памяти потоки JavaScript.

...