Closed hahei89 closed 3 years ago
function mySetInterval (fn, a, b) { var timer var count = 0 var canStart = true function setIntervalFunc () { if (canStart) { timer = setTimeout(() => { fn() count += 1 setIntervalFunc() }, a + count * b) } } setIntervalFunc() function myClear () { canStart = false if (timer) { clearTimeout(timer) } canStart = true } return myClear }
// 测试 function timerFunc () { console.log('timer func') } var clear = mySetInterval(timerFunc, 300, 300) setTimeout(() => { clear() }, 10000)
发错位置了
function mySetInterval (fn, a, b) { var timer var count = 0 var canStart = true function setIntervalFunc () { if (canStart) { timer = setTimeout(() => { fn() count += 1 setIntervalFunc() }, a + count * b) } } setIntervalFunc() function myClear () { canStart = false if (timer) { clearTimeout(timer) } canStart = true } return myClear }
// 测试 function timerFunc () { console.log('timer func') } var clear = mySetInterval(timerFunc, 300, 300) setTimeout(() => { clear() }, 10000)