手掌心
2018-12-13 18:14:24
發(fā)布訂閱模式一般是add加入,然后publish一次性釋放,但是假設(shè)add的是這種帶時間控制的,也就是說,我不但要函數(shù)一次執(zhí)行,也希望它是在每次延遲時間過后再執(zhí)行,這樣一次執(zhí)行完,求高手指點?。。》浅F诖龑崿F(xiàn)!
1 回答

大話西游666
TA貢獻1817條經(jīng)驗 獲得超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()
添加回答
舉報
0/150
提交
取消