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中文网其他相关文章!