通常做法是拿一个计数器,到了就停止。
// 执行60次后结束
var timesRun = 0;
var interval = setInterval(function(){
timesRun += 1;
if(timesRun === 60){
clearInterval(interval);
}
//do whatever here..
}, 2000);
引用自:https://blog.youkuaiyun.com/chelen_jak/article/details/82899153
更加方便的做法:
// 这种方法简单优雅,不影响原来的流程
const interval = setInterval(function(){
//do whatever here..
}, 1000);
// 10次后结束,因为一般都知道每次间隔是多少,那10次后就是:10000。
setTimeout(() => {
clearInterval(interval )
}, 10000);
如果有rxjs,那就更加优雅了:
就一行代码,效果跟上面的代码一样,是不是很清爽
// 就一行代码,效果跟上面的代码一样,是不是很清爽
Rx.Observable.interval(1000).take(10).subscribe(() => {console.log("hello rxjs")});