【问题标题】:how to stop loop while using setTimeout function如何在使用 setTimeout 函数时停止循环
【发布时间】:2021-01-05 07:51:43
【问题描述】:

const fruits = ['apple', 'mango', 'orange', 'date'];
let found = 0;

fruits.forEach((value, key) => {
  if (found == 0) {
    console.log("value", value)

    setTimeout(() => {
      if (value.length > 1) {
        found = 1;
      }
    }, 200)
  }
})

当它被捕获时停止循环 found=1 但在使用setTimout 之后它的行为不是这样如何解决它

【问题讨论】:

  • 你不能停止forEach方法,你可以改用for loop
  • 为什么循环内需要超时。循环将在第一次超时发生之前完成。你到底想做什么?
  • 这能回答你的问题吗? Breaking out of setTimeout loop
  • 你能解释一下上下文吗?为什么需要setTimeout
  • 您正在寻找的实际结果是什么。我认为这是一个 X/Y 问题。告诉我们您想看什么,我们可以提供帮助

标签: javascript loops settimeout


【解决方案1】:

这是你想要的吗:

const fruits = ['apple', 'mango', 'orange', 'date'];
let found = 0;
for (var i = 0 ; i < fruits.length ; i++ ) {
  const value = fruits[i];
  if (value.length > 1) {
     found = 1;
     console.log("Founded", value)
     break;
   } else {
     console.log("Value", value)
   }
}
console.log("Found: ",found)

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2011-08-12
    相关资源
    最近更新 更多