stop
stop()
停止 PeriodicalExecuter
的执行,回调函数不会再次被触发。
PeriodicalExecuter
被创建后,它会构成一个无限循环,按照给定的时间间隔触发回调,直到页面被卸载为止。
这个方法让你能够随时中止循环。
PeriodicalExecuter
被中止后,虽然在技术上可以通过 registerCallback
方法再次启用,
但这会让人感到混淆不清,究竟是应该把 registerCallback
当作一个内部方法(因此不能作为一项功能使用),
还是当作外部方法。既然存在疑问,那么当需要启动一个定时器时,还是实例化一个新的 PeriodicalExecuter
吧。
译注:其实我倒觉得有一个重新启动的方法,这个主意不错,如果你有和我一样的想法, 那么可以按照下面的方法扩展代码:
PeriodicalExecuter.prototype.resume = function(){
if(!this.timer)
this.registerCallback();
};
扩展完成后,可以这样使用:
var pe = new PeriodicalExecuter(function(){
alert('这是一个测试样例!');
}, 5);
// 如果要停止
pe.stop();
// 停止后再重新启动
pe.resume();
样例
var gCallCount = 0;
new PeriodicalExecuter(function(pe) {
if (++gCallCount > 3)
pe.stop();
else
alert(gCallCount);
}, 1);
// 只会弹出 1, 2, 3,然后停止。