首页  >  文章  >  web前端  >  如何在执行下一行代码之前在 JavaScript 中创建 5 秒的延迟?

如何在执行下一行代码之前在 JavaScript 中创建 5 秒的延迟?

Patricia Arquette
Patricia Arquette原创
2024-10-25 17:07:03391浏览

How can I create a 5-second delay in JavaScript before executing the next line of code?

如何在执行下一行之前等待 5 秒>

在 JavaScript 中工作时,控制执行流程至关重要。考虑以下场景:您需要一个函数在执行特定操作之前暂停 5 秒,例如检查变量的值。


使用 setTimeout 函数


传统上,JavaScript 开发人员依赖 setTimeout 函数来引入执行延迟。该函数有两个参数:一个表示要执行的代码的字符串和一个以毫秒表示的延迟。在您的特定情况下,下面的代码摘录不足:


<br>function stateChange(newState) {<br> setTimeout('', 5000);</p>
<p> if (newState == -1) {</p>
<pre class="brush:php;toolbar:false">alert('VIDEO HAS STOPPED');

}
}

这里的问题是传递给 setTimeout 的空字符串不会没有任何作用。要在检查 newState 变量之前创建 5 秒的延迟,您应该按如下方式修改代码:


<br>function stateChange(newState) {<br> setTimeout(() = > {</p>
<pre class="brush:php;toolbar:false">if (newState == -1) {
  alert('VIDEO HAS STOPPED');
}

}, 5000);
}

通过提供函数作为第一个参数,您可以指定代码延迟后执行。现在,该函数将在检查 newState 之前准确地暂停 5 秒。


替代解决方案


在现代 JavaScript 中,您还可以利用 async/等待达到相同的结果。 Async/await 简化了异步操作并使代码更具可读性。以下是如何针对您的场景实现它:


<br>const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));</p>
<p>异步函数 stateChange(newState) {<br>等待延迟(5000);</p>
<p>if (newState == -1 ) {</p>
<pre class="brush:php;toolbar:false">alert('VIDEO HAS STOPPED');

}
}

此代码使用延迟函数,该函数返回一个在指定延迟后解析的 Promise。通过使用 async/await,您将 stateChange 函数声明为异步函数并等待延迟完成,确保在检查 newState 之前有 5 秒的暂停。

以上是如何在执行下一行代码之前在 JavaScript 中创建 5 秒的延迟?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn