JavaScript Sleep 的現代方法:引入基於 Promise 的解決方案
自 2009 年誕生以來,JavaScript 經歷了重大轉變。曾經流行的用於在函數內創建“真正”睡眠的pausecomp函數已經過時了。今天,一種更有效率、更通用的方法等著我們。
現代 JavaScript 睡眠版本依賴 Promise 的力量。使用 new Promise() 建構函數,我們可以建立一個在指定毫秒數後解析的 Promise。透過使用await關鍵字,我們可以暫停函數的執行,直到promise得到解決,從而有效地實現所需的睡眠行為。
這裡是更新的程式碼片段:
function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); }
這個函數可以用多種方式使用:
作為單行:
await new Promise(r => setTimeout(r, 2000));
作為獨立函數:
const sleep = ms => new Promise(r => setTimeout(r, ms));
作為TypeScript 中的類型化函數:
const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
要使用睡眠函數,只需在中調用所需的持續時間即可毫秒並等待其解析:
await sleep(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 的非同步特性。
以上是如何使用 Promise 實現現代 JavaScript 睡眠函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!