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 @ 2021-01-08 10:25  qoon  阅读(91)  评论(0)    收藏  举报