tool->定时器函数

data需要为对象类型 使用浅拷贝概念
使用 timeout 递归实现
待实现 .timeout 应带有时间 传递

使用方法

// init
var default_count = 30;
var timer = timer({time: default_count}, function() {
      this.data.time--;
      // 这里写每次 多少秒调用的处理
}, function() {
    if (this.data.time <= 0) {
      // 每次调用是否继续的判断 true: 终止
      return true;
    }
    else
        return false;
}, 1000)

// run
timer.timeout()

原文件

/**
      data: 传入的闭包参数
      func_logic: run逻辑
      func_end: run判断
      time: 延迟run时间
*/
var timer = function(data, func_logic, func_end, time) {
    function timeout() {
        setTimeout(()=>{
            func_logic.call(this);

            // 返回 true 则终止 递归
            if(!func_end.call(this)) {
                this.timeout();
            }
        }, time);
    }

    return {
        data,
        timeout,
    }
}
posted @   qoon  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示