因此,我正在尝试使用创建循环来执行此操作:
setTimeout(function() {
console.log("Hey!");
setTimeout(function() {
console.log("Hey!");
setTimeout(function() {
console.log("Hey!");
}, 1000);
}, 1000);
}, 1000);
所以,我这样尝试了。
for (i = 0; 1 < 3; i++){
setTimeout(function() {
console.log("Hey!");
}, 1000);
}
但是,它不起作用。
做一些研究,我注意到这是因为在每个循环中,timeOuts相互增加。我该如何解决?
最佳答案
您必须递归调用超时,因此编写一个函数,该函数接受当前尝试次数的参数。让它执行操作,然后使用trys参数+ = 1调用自身。
您应该传递多次尝试作为保护措施,以便您可以告诉函数如果尝试次数>某个限制,则不要调用自身,以避免无限循环。
就像是:
timedLog(attempts) {
console.log('Hey!');
if (attempts > 10) {
return;
} else {
setTimeout(function() { timedLog(attempts + 1); }, 1000);
}
}
它看起来不再像for循环,但这是相同的原理。