首頁  >  文章  >  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> if (newState == -1) {</p><pre class="brush:php;toolbar:false">alert('VIDEO HAS STOPPED');

}
}


這裡的問題是傳遞給setTimeout 的空字串不會沒有任何作用。要在檢查newState 變數之前建立5 秒的延遲,您應該如下修改程式碼:


<br>function stateChange(newState) {<br> setTimeout(() = > {<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>異步函數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