雖然pausecomp 函數提供了用於在JavaScript 中引發暫停的基本解決方案,但當代標準需要更有效率的解決方案和優雅的方法。本文介紹了目前在 JavaScript 函數中實現「真正睡眠」的最佳實踐,該實踐自 2009 年以來不斷發展。
function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); }
此函數利用了 Promise API 是 ECMAScript 2015 中引入的內建功能,用於建立表示非同步睡眠操作的 Promise。經過指定的毫秒數 (ms) 後,將呼叫解析函數,進而觸發繼續執行。
作為函數:
const sleep = ms => new Promise(r => setTimeout(r, ms));
單行語法:
await new Promise(r => setTimeout(r, 2000));
演示:
async function demo() { for (let i = 0; i < 5; i++) { console.log(`Waiting ${i} seconds...`); await sleep(i * 1000); } console.log('Done'); } demo();
以上是如何在現代 JavaScript 中高效實現睡眠函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!