设置超时 Javascript 'Timer'
setTimeout Javascript 'Timer'
let doit = (from, to) => {
let a = setTimeout(doit, 500, ++from);
console.table(from);
if (from === to) {
clearTimeout(a)
}
};
doit(6, 13);
编写一个每秒打印一个数字的 printNumbers(from, to) 函数,
从 from 开始并以 to 结束。
你能描述一下为什么这个计时器没有停止吗?
能不能评论回复一下。
它不会停止,因为您没有将 to
传递给递归调用。您只超过了 ++from
。如果您记录两个值,这将是相当明显的:
let doit = (from, to) => {
let a = setTimeout(doit, 500, ++from);
console.log(from, to);
if (from === to) {
clearTimeout(a)
}
};
doit(6, 13);
解决办法也是通过to
:
let doit = (from, to) => {
let a = setTimeout(doit, 500, ++from, to); //
console.log(from, to);
if (from === to) {
clearTimeout(a)
}
};
doit(6, 13);
let doit = (from, to) => {
let a = setTimeout(doit, 500, ++from);
console.table(from);
if (from === to) {
clearTimeout(a)
}
};
doit(6, 13);
它不会停止,因为您没有将 to
传递给递归调用。您只超过了 ++from
。如果您记录两个值,这将是相当明显的:
let doit = (from, to) => {
let a = setTimeout(doit, 500, ++from);
console.log(from, to);
if (from === to) {
clearTimeout(a)
}
};
doit(6, 13);
解决办法也是通过to
:
let doit = (from, to) => {
let a = setTimeout(doit, 500, ++from, to); //
console.log(from, to);
if (from === to) {
clearTimeout(a)
}
};
doit(6, 13);