【发布时间】:2019-10-01 09:53:59
【问题描述】:
我创建了 setTimeout,它有一个名为 run 的回调,在运行中我调用了 console.log(i) 以使用 i++ 打印 I 的值,一旦达到 50,我想清除 setTimeout使用clearTimeout,我再次调用 setTimeout 并运行使其递归,但它不起作用。
有人可以帮助我更好地理解这个概念吗?
let i = 1;
var abc = setTimeout(function run(){
console.log(i);
if(i==50){
abc1();
}
i++;
setTimeout(run,100);
},100);
function abc1(){
clearTimeout(abc);
}
【问题讨论】:
-
您遇到的错误是什么?我假设它是
run is not defined? -
顺便说一句 - 你知道
setInterval/clearInterval吗?如果您知道自己想重复运行同一件事直到达到特定条件,那么它们可能是更好的选择。 -
@nightgaunt
runis 已定义 - 它是传递给setTimeout的命名函数表达式。
标签: javascript recursion settimeout