题解 | #完全等同#
setInterval
function count(start, end) {
// 第一个数需要立即输出
console.log(start++)
let task = () => {
if (start <= end) {
console.log(start++)
} else {
cancel()
}
}
//每隔 100 毫秒 console
let interval = setInterval(task, 100)
//包含一个 cancel 方法,用于停止定时操作
let cancel = () => {
clearInterval(interval)
}
return { cancel }
}
setTimeout
let st //函数里面定义var st会不通过
function count(start, end) {
// 第一个数需要立即输出
if (start <= end) {
console.log(start++)
//每隔 100 毫秒 console
st = setTimeout(() => { count(start, end) }, 100)
}
//包含一个 cancel 方法,用于停止定时操作
let cancel = () => {
clearTimeout(st)
}
return { cancel }
}
let start = 100
let end = 110
console.log(count(start, end))
//不小心的错误写法
// let st = setTimeout( count(start, end), 100)
//注意返回是函数,上面的写法返回的是个值