javascript - `setInterval` 直到条件是不好的做法吗?

标签 javascript

如果我在继续之前等待条件成立,这样做会是不好的做法还是效率低下:

const myInterval = setInterval(() => {
  if(condition) {
    doMyAction();
    clearInterval(myInterval);
    return;
  }
}, 1);

最佳答案

这完全取决于上下文是什么以及您使用此方法的原因。如果您通过的确切时间很重要,那么使用它是合理的。动画就是一个例子。如果您需要根据条件和时间间隔执行某些动画,那么当然,它肯定会起作用。

如果以明确的条件提供条件:可能需要更快,可能需要更长的时间 - 那么您肯定会希望使用异步方法。例如,当您等待服务器响应请求时,这完全取决于用户的互联网连接速度,因此会有所不同。 async/await 肯定会更高效,并且不会浪费时间或破坏用户体验。使用 setInterval/setTimeout,您就在赌它会给用户带来怎样的结果。

归根结底,这两种方法都很有用。您只需要确保对任何特定问题做出正确的选择。

看看在像您这样的情况下 async/await 的用法。 Here还有另一个问题讨论了与您类似的问题,您可以引用。

引用文献:

关于javascript - `setInterval` 直到条件是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60133636/

相关文章:

javascript - 如何解析[object HTMLDivElement]?

javascript - D3.js:连接 json 和 csv 不起作用

javascript - 尝试使用 Javascript 对我正在制作的图像进行编号

javascript - 使 Array.filter() 返回 false 而不是 true 的项目

javascript - 如何在jquery中动态打印id

javascript - 为什么 meteor 会被认为是不安全的?

javascript - Vue.js 从未捕获的子组件发出事件

php - 如何告诉浏览器忘记 htdigest?

javascript - 查找所有未选中的复选框

javascript - JSON 无法正确加载