我想在 For 循环内检查 k
次条件是否为真,每次我想等待 2 秒,之后我想进行下一次迭代一个循环。例如,我尝试了如下 -
var k = 0;
for (let i = 0; i < B.length; i++) {
setTimeout(function F_stTimer() {
if (B[i].innerText === "S") {
var A = "True"; //just for example
if (A === true && k == 0) {
// Do something
k = k + 1;
i = i - 1; // so , I can check the ith element again once start the loop again
} //if
else if (A === true && k > 0 && k < 5) { //checking 5 times for A to be false
k = k + 1;
}, i * 2000);
i = i - 1;
} //if
else if (A === true && k == 5) {
k = 0;
} //if
} // if
}, 5000);
} // i loop
但是上述类型的代码不起作用,因为当它位于 setTimeout
内部时我没有更改。
无论如何,有人可以帮助我解决我遇到的问题吗?
不需要按照我上面说的方式,我想做的是-
在 For 循环内检查 k
次条件是否为真,每次我想要等待 t 秒(每个延迟的持续时间/延迟间隔),之后那,我想进入 for 循环的下一次迭代。
请发表评论以获取进一步说明。
最佳答案
您可以间隔一段时间并检查计数器。
var counter = 0,
interval = setInterval(function () {
counter++;
if (counter === 5) {
counter = 0;
console.log('five');
} else {
console.log('not five');
}
}, 1000);
关于Javascript:在 For 循环中等待一个(或多个)条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58249517/