实现链式调用
题目
show(1000,()=>{console.log(1)})
.show(1200,()=>{console.log(2)})
.show(1300,()=>{console.log(3)})思路
实现
const show = (time, fn) => {
const task = []
let isRun = false
const run = ({time,fn}) =>{
isRun = true
setTimeout(()=>{
fn()
task.shift()
isRun = false
checkRun()
}, time)
}
const checkRun = ()=> {
if(task.length && !isRun){
run(task[0])
}
}
const wrap = (time, fn) => {
task.push({time,fn})
checkRun()
return {show:wrap}
}
return wrap(time, fn)
}最后更新于