ExtJS如何在两个异步事件之后设置一个动作
ExtJS how to set up an action after two asynchronous events
我有两个存储与autoload: true
加载数据。我想在后填充我的UI,这两个都加载了。我遵循MVC架构,所以在我的控制器,我试图做这样的事情:
store1.on('load', me.setUpIfBothStoresReady, me);
store2.on('load', me.setUpIfBothStoresReady, me);
setUpIfBothStoresReady: function() {
if(store1.isSuccessfullyLoaded() && store2.isSuccessfullyLoaded()) {
// do work
}
}
问题是,此时可能已经加载了一个或两个存储。除了手动控制这些商店的负载外,是否有一些设计模式我可以使用,只有在两者都完成后才能做工作?
你可以使用像whenjs这样的东西来处理延迟事件。
https://github.com/cujojs/when/wiki/Examples或者自己写:
loadStores: function() {
...
me.loaded = 0;
store1.on('load', me.setUpIfBothStoresReady, me);
store2.on('load', me.setUpIfBothStoresReady, me);
},
...
setUpIfBothStoresReady: function() {
++this.loaded;
if (this.loaded == 2) {
//do work
}
}
如果你有几个存储,最好使用array.
相关文章:
- 在jAlert之后设置焦点
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- 即使在服务器将访问控制允许原点设置为“*”之后,也会收到javascript错误
- AngularJS:如何在设置了$scope.var之后才在视图中设置$scope.var
- 将值设置为父's的父's的孩子'在Ajax调用之后的兄弟
- HTML元素的光标是在拖动之后设置的,但不是在拖动过程中设置的
- 将twitter引导程序popover设置为在某个事件之后隐藏,然后在另一个事件之后显示
- Node.js,错误344,可以't在设置标头之后设置标头
- 如何在 setInterval() 方法之后设置“stop”
- 在为 jquery 自动完成设置源代码时获取“语法错误:缺少:在属性 ID 之后”
- 在jquery/javascript的输入框中的特定项目之后设置焦点
- 节点保存错误“;可以't在它们被发送之后设置报头”;
- 可以't在使用node js将动态字段值插入mysql DB时,在发送头之后设置头
- 为什么设置一个元素's zindex返回到0,不将其移动到IE9中的其他对象之后
- 即使在函数中将returnValue设置为False之后,控制器动作仍在执行
- "可以't在标头之后设置标头'重新发送”;
- 将输入光标设置为javascript正则表达式之后的正确位置
- javascript:如果日期在1月15日之后,则设置隐藏字段
- 如何在angularjs中读取cookie,在WebApi中设置之后
- JavaScript在onkeyup函数之后自动取消设置元素类