我知道这是一个基础的问题...但我会尽量解释。
我一直在使用一个延迟,但有人指出,我使用它作为一个反模式。 基本上,我可以使用子模块中的延迟。 但如果这是一个反模式,什么是实现这一目标中,“子模块”未必有最好的方式..所以,我不想显式调用子方法在父阿贾克斯成功呼叫。
所以,三个问题:
这是一个可行的办法,如果不是 - 什么是要实现什么,我去一个好办法吗?
即使我重置递延,它不似乎“重置”。 为什么?
可以这样也可以实现与其他事件耦合它 - 即onload事件。 SO <我们有AJAX和onload事件做同样的事情。
我有一个父模块。
var Z = {};
Z.someVar = $.Deferred();
Z.a = function(){
//methods
//Ajax call on page: can be once or multiple calls.
$AJAX = {
url:...,
dataType: ...,
//etc..
}.success(
function(){
Z.someVar.resolve();
}
).error();
};
// another method that MIGHT exist.
Z.b = function(){
var func1 = function(){
// do some stuff
Z.someVar = $.Deferred(); // reset it.
}
Z.someVar.done(function(){
func1();
})
}