为了账号安全,请及时绑定邮箱和手机立即绑定

javascrpt定时执行一组函数的方法

javascrpt定时执行一组函数的方法

手掌心 2018-12-13 18:14:24
发布订阅模式一般是add加入,然后publish一次性释放,但是假设add的是这种带时间控制的,也就是说,我不但要函数一次执行,也希望它是在每次延迟时间过后再执行,这样一次执行完,求高手指点!!!非常期待实现!
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

var Ob = {

    arr: [],

    add(fn, val){

        this.arr.push({

            fn,

            val

        }) 

        return this

    },

    fire(){

        var arr = this.arr

        var obj = arr.splice(0, 1)[0] || {}

        obj.fn && this.timeout(obj.val, obj.fn)

    },

    timeout(val, cb){

        setTimeout(x => {

            cb()

            this.fire()

        }, val * 1000)

    }

}

var a = function(){ console.log(1) }

var b = function(){ console.log(2) }

var c = function(){ console.log(3) }

Ob.add(a, 1).add(b, 1.5).add(c, 0.8)

Ob.fire()


查看完整回答
反对 回复 2019-01-23
  • 1 回答
  • 0 关注
  • 478 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信