如题,自己写了个类似于setInterval的定时器,想要它返回{continue: true}
方便清除定时器,但是发现执行结果是false
,百思不得其解。
测试环境:chromium62.0 v8
let interval = function(callback, timeout, ...args){
let flag = { continue: true }
function loop(){
setTimeout((args) => {
callback(...args)
if(flag.continue) arguments.callee()
}, timeout, args)
}
return !function(){
loop()
return flag
}()
}
// Test
let test = interval(() => {
console.log('test')
},1000)
// 这里test是false,不是想要的{continue: true}
我傻了,写习惯'!'了…当我没提问