首頁 > web前端 > js教程 > 主體

如何在 JavaScript 中等待 5 秒再執行下一行?

Mary-Kate Olsen
發布: 2024-10-26 07:01:31
原創
302 人瀏覽過

How to Wait 5 Seconds Before Executing the Next Line in JavaScript?

執行下一行之前等待 5 秒

在 JavaScript 中,setTimeout() 函數安排函數在指定的毫秒數後執行。但是,它不會停止程式碼的執行,這意味著下一行程式碼將在 setTimeout() 呼叫後立即執行,無論指定的延遲如何。

您的程式碼

您的程式碼旨在等待 5 秒,然後再檢查 newState 是否等於 -1。但是,由於 setTimeout() 不會阻塞程式碼,因此在 5 秒延遲發生之前立即進行檢查。

解決方案

要實現所需的行為,您需要使用一種機制可以將程式碼的執行暫停 5 秒鐘。您可以考慮兩種現代方法:

1。 Async/Await 語法(僅限瀏覽器)

ES6 引入了 async/await 語法,它允許您以更同步的方式編寫非同步程式碼。透過將函數標記為非同步,您可以使用await關鍵字暫停執行,直到promise已解決。

<code class="javascript">const delay = ms => new Promise(resolve => setTimeout(resolve, ms));

const stateChange = async newState => {
  await delay(5000);

  if (newState === -1) {
    alert('VIDEO HAS STOPPED');
  }
};</code>
登入後複製

2. Timers/Promises 模組(僅限 Node.js)

在 Node.js 16 中,timers/promises 模組提供了基於 Promise 的 setTimeout 版本。這允許您暫停執行並等待延遲完成後再繼續。

<code class="javascript">import { setTimeout } from "timers/promises";

const stateChange = async newState => {
  await setTimeout(5000);

  if (newState === -1) {
    console.log('VIDEO HAS STOPPED');
  }
};</code>
登入後複製

這兩種方法都將確保在執行 newState 檢查之前程式碼執行暫停 5 秒。

以上是如何在 JavaScript 中等待 5 秒再執行下一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板