JS手写练习随笔-20221210.2 ---- 使用setTimeout模拟setInterval

由于 window.setInterval 定时器方法自身存在一些弊端以,所以在实践中通常使用 setTimeout 方法来模拟 setInterval。

#TS版

复制代码
type ISetIntervalReturn = {
  cancel(): void;
};

function _setInterval(fn: Function, interval: number = 0): ISetIntervalReturn {
  let timer: number | null = null;
  const handler = () => {
    fn();
    timer = window.setTimeout(handler, interval);
  };
  handler();
  return {
    cancel: () => {
      if (timer === null) return;
      window.clearInterval(timer);
      timer = null;
    },
  };
}
复制代码

 

posted @   樊顺  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示