如果我在继续之前等待条件成立,这样做会是不好的做法还是效率低下:
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/