var num = 0;
var max = 10;
(function incrementNumber(){
num++;
if (num <= max) {
console.log(num);
setTimeout(incrementNumber,500)
//setTimeout(incrementNumber(),500)
}
else{
console.log('done');
}
})();
谢谢各位,问题已解决: incrementNumber()直接调用函数,返回undefined,导致setTimeout失效,但是incrementNumber()函数仍然运行,所以最后直接输出,但是没有任何时间间隔
当incrementNumber没有带括号的时候,运行正确,每隔500ms从1输出到10.
为什么加上了括号之后incrementNumber(),运行后直接就把1到10输出来了,没有任何的间隔时间?
我知道第一个参数应该是字符串或者函数(名),但为什么这里加上括号之后没有出错呢?(虽然运行结果并不符合预期)
我的理解是最后一次性返回所有数字没有问题,但之前应该会有10*500ms总的等待时间?
呼唤远方
相关分类