Javascript:在 For 循环中等待一个(或多个)条件

标签 javascript for-loop wait

我想在 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/

相关文章:

r - For() 循环查找其他日期之间的 ID 日期并计算平均值

java:为什么等待一段时间会使我的程序无法按顺序执行?

javascript - 移动和桌面 View 的 Angular Controller 继承

javascript - 如何使用 WinJS 一次保存多个文件?

java - 直方图是颠倒的

java - 为什么编译器不提示在非同步块(synchronized block)中使用等待

python - 如何在pygame中等待一段时间?

javascript - 以编程方式在 <canvas> 的 fillStyle 中使用 RGBa 值?

Javascript:保护全局变量

Java For 循环逻辑