js中如果想限制定时器执行次数该怎么做

 我来答
ml4w5
2017-03-13 · TA获得超过1394个赞
知道小有建树答主
回答量:625
采纳率:25%
帮助的人:647万
展开全部

可以定义一个变量,赋值为要执行的次数,然后每次执行定时器时这个变量自减一,直到为0,清除定时器。

var repeat = 5;  // 限制执行次数为5次
var timer = setInterval(function() {    
    if (repeat == 0) {
        clearInterval(timer);
    } else {
        repeat--;
        // 其他代码...
    }
}, 1000);
零落丨絮丶
2019-07-15
知道答主
回答量:45
采纳率:28%
帮助的人:3.5万
展开全部
/**
* 创建有上限时钟
* @param  {int}   upperlimit       上限次数
* @param  {int}   cycle            间隔时间
* @param  {Function} _callback         回调函数
* @param  {Function}   _completeCallback 执行完毕后调用的函数
* @return {Object}                    返回一个时钟对象
*/
function createUpperLimitTime(_upperlimit ,cycle ,_callback ,_completeCallback){
var successindex = 0;
var timeobj;
var upperlimit=_upperlimit;
var callback = _callback || function(){};
var completeCallback = _completeCallback || function(){};
// 先看到了没再执行
console.log("定时器开始");
console.log(upperlimit);
var extendCallback = function(){
if (successindex >= upperlimit){
clearTimeout(timeobj);
completeCallback();// 完成后对时钟实例基本无需什么操作了,因此这里不提供也行
}else {
callback(timeobj);// 实际上这个回调函数是可以获得时钟实例的
successindex++;
}
}
timeobj = window.setInterval(extendCallback ,cycle);
return timeobj;// 返回这个时钟对象,可以作用于终止
}
createUpperLimitTime(5 ,1000 ,function(){ // 测试
console.log(1);
},function(){
console.log(2);
});

网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
疯Niki
2017-03-13
知道答主
回答量:37
采纳率:0%
帮助的人:12.8万
展开全部
        var i=0;
var st = setInterval(function(){
i++;
//执行的函数
console.log(i);
//实行了3次
if (i >= 3) {
clearInterval(st);
}
},500);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式