风雪o 2022-10-28 18:24 采纳率: 60%
浏览 28

自定义clearInterval

下面是我用clearTimeout实现的一个clearInterval效果,
如何不用clearTimeout()、clearInterval()实现一个自定义的clearInterval()呢?
@小蓝阿姨 @Z_ One Dream

//myclearInterval
function myInterval(func, time) {
  let ids = [];
  function fn() {
    let id = setTimeout(() => {
      func();

      fn();
    }, time)
    //console.log(id);
    ids.push(id);
  }
  fn();
  return ids;
}
function clearMyInterval(idList) {
  idList.forEach((id) => {
    clearTimeout(id);
    //clearInterval(id)
  })
}
function myclearInterval(id) {
  setTimeout(() => {
    clearMyInterval(id)
  }, 0)
}
//-----------------------------------------
var num=0;
let id = myInterval(() => {
  //document.write('Hello World');
  num++;
   if(num===5) myclearInterval(id)
  //console.log(num);
  //   clearMyInterval(id)
  console.log(num);
}, 1000)
  • 写回答

4条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-28 20:20
    关注
    评论

报告相同问题?

问题事件

  • 修改了问题 10月28日
  • 创建了问题 10月28日