首页 > 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板