我的代码类似于:
var count = 0;
setInterval(function() {
if(count===0){
console.log(123);
count++;
} else if(count>0) {
for(i=1;i<=2;i++){
(function(ind) {
setTimeout(function() {
console.log(ind);
}, 1000 * ind);
})(i);
}
count=0;
}
},1000)
结果不是我的预期,我想为控制台日志实现的目标如下:
123
1
2
123
1
2
...
对于每个1000毫秒的间隔,等等。另外我想问一下有更好的方法吗? setTimeout循环的数量(上述情况为2)每次都可能/可能不同。
答案 0 :(得分:1)
这样的事情,首先打印123并等待1000ms,然后等待1000ms,最后2等待1000ms后再无限重复整个过程
如果您需要定期以1000毫秒为间隔,内部倒计时然后重置,您只需使用一个setInterval
:
// Uses a 100ms rather than 1000ms counter, stopping after two seconds
var count = 0;
var inner = 0;
var handle = setInterval(function() {
if (inner == 0) {
// Start again
console.log(123);
count = 0;
// The number of "inner" counts to do
inner = 2;
} else {
// An "inner" count
++count;
--inner;
console.log(count);
}
}, 100);
// Stop it after two seconds, just for demo purposes
setTimeout(function() {
clearInterval(handle);
}, 2000);
&#13;