内部ループを持つモジュールがあります (「settimeout」を使用)。タイマーが発生するたびにコールバックを発生させたい。jQueryの遅延オブジェクトを使ってみましたが、うまくいきません..次のようなもの:
$(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();
};
問題は、タイマーが内部でメソッドを呼び出すため、「.then(Do Something);」を呼び出す必要がないことです。メインプログラムの。古い学校の関数コールバック (コールバック関数をモジュールに渡す) を使用できますが、これらの優れた機能を実際に試してみたかったのです。
ありがとう、
ヤニフ