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

如何設定超時後延遲5秒執行程式碼?

Barbara Streisand
發布: 2024-10-26 03:26:27
原創
272 人瀏覽過

How Can I Delay Code Execution for 5 Seconds After Setting a Timeout?

延遲程式碼執行5 秒

提供的程式碼嘗試使用setTimeout 函數將操作的執行延遲5 秒:

<code class="javascript">function stateChange(newState) {
  setTimeout('', 5000);

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

但是,程式碼在安排逾時後立即檢查條件newState == -1,從而消除了預期的延遲。

瀏覽器/Node.js 解決方案

正確的解決方案涉及使用非同步將 if 語句的執行延遲到 5 秒後的程式設計技術。對於瀏覽器,您可以使用async/await 語法:

<code class="javascript">// Utility function
const delay = ms => new Promise(res => setTimeout(res, ms));

// Function to wait 5 seconds before checking newState
const stateChange = async (newState) => {
  await delay(5000);
  if (newState == -1) {
    alert('VIDEO HAS STOPPED');
  }
};</code>
登入後複製

對於Node.js 16 及更高版本,您可以利用內建的基於Promise 的setTimeout:

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

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

請記得檢查瀏覽器對async/await 的支援以及內建基於Promise 的setTimeout 的Node.js 版本。

以上是如何設定超時後延遲5秒執行程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!