首頁 > web前端 > js教程 > 如何使用 Promise 實現現代 JavaScript 睡眠函數?

如何使用 Promise 實現現代 JavaScript 睡眠函數?

DDD
發布: 2024-12-28 02:47:10
原創
689 人瀏覽過

How Can I Implement a Modern JavaScript Sleep Function Using Promises?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板