0
我有一个模块,有一个内部循环(使用'settimeout')。每次定时器发生时,我都想发起回调。我试图使用jQuery的Deferred对象,没有运气..喜欢的东西:使用jQuery的推迟与settimeout
$(function(){
var module = new MyModule();
$.when(module.init()).then("DO Something");
});
function MyModule(){
this.d = $.Deferred();
}
test.prototype.init = function(){
clearTimeout(this.next);
var self = this;
/* Do Something */
self.d.resolve();
this.next = setTimeout(function(){
self.init(); /* The problem is here - internal call to self */
}, 4000);
return self.d.promise();
};
的问题是,计时器调用该方法内部,所以我不会有呼叫“于是(做某事);”的主要计划。我可以使用旧的学校函数回调(传递回调函数到模块),但我真的想尝试这些伟大的功能。
感谢,
的Yaniv
好知道这一个。在我的情况下,我只需要一个回调就可以拨打所有的电话,这是不是有点矫枉过正? –
如果你只保证有一个回调,那么它可能是。这取决于您的要求,以及您是否认为将来可能需要多次回调。 – dherman