在 JavaScript 中工作時,控制執行流程至關重要。考慮以下場景:您需要一個函數在執行特定操作之前暫停 5 秒,例如檢查變數的值。
傳統上,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中文網其他相關文章!