我在递归中使用 setTimeouts 来模拟 setInterval,同时防止它自行运行,例如:
this.poll = function() {
var self = this;
if(self.timeout) {
clearTimeout(self.timeout)
}
self.timeout = setTimeout(function(){
self.request();
}, 1000);
}
self.request();
包含 ajax 逻辑和调用this.poll()
。
问题是当再次调用时它似乎并没有真正清除超时this.poll
,我最终得到了大量的请求。
有没有更好的方法来处理这个问题?
谢谢!