settimeout和setinternal

图片描述

分别用settimeout和setinternal来实现

阅读 3.5k
5 个回答

你是说这个??

var i = 0
    var a = setInterval(function () {
        i++;
        console.log(i)
        if(i>=100){
            clearInterval(a)
        }
    },5000)
        var i = 0;
        var interval = setInterval(function () {
            i += 1;
            if (i > 100) {
                clearInterval(interval);
            }
            else {
                console.log("第" + i + "次调用");
            }
        }, 5000);
var i = 0;
        var timer;
        function MyFun() {
            i += 1;
            if (i > 100) {
                clearTimeout(timer);
            }
            else
            {
                console.log("第" + i + "次调用");
                timer = setTimeout(MyFun, 5000);
            }
        }

        MyFun();

setInterval:

let flag = 0;
let timer = setInterval(function func(){
    flag++ ;
    if(flag>100){
        clearInterval(timer);
     }
},5000);

setTimeout:

let sum = 0;
setTimeout(function(){
    ...
  sum++;
  if(sum<=100){
    setTimeout(arguments.callee,5000);
  }
5000);
var set5sTimeout=function(fun){
  for(var i=1;i<=100;i++){
    setTimeout(fun,i*5000);
  }
}

var set5sInterval = function(fun){
  var time=0;
  var id=setInterval(function(){
    if(time<100){
      fun.call();
      time++;
    }else{
     clearInterval(id); 
    }
  },5000)
}

弄个计数器就 ok 了吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题