Hi,这里是前端后花园,每天学习一个 JS 片段,涨涨知识🧀!今天带来的是实现slepp函数。
代码片段
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
const greet = async () => {
console.log('sleep 300ms');
await sleep(300);
console.log('输出');
};
greet();
//sleep 300ms
//输出
分享原因
-
JavaScript 没有内置的 sleep 函数;
-
通过将
setTimeout
包装在Promise
中,实现了“Promise-like”形式的异步sleep函数。
代码解析
-
sleep函数接收延迟
ms
时间,并创建了一个新的Promise
对象,在setTimeout
延时ms
毫秒后调用resolve
函数; -
使用时通过在定义的async函数中,使用
await
关键字调用sleep
函数; -
sleep
函数返回一个Promise
,await
会暂停greet
函数的执行,直到ms
后Promise
被resolve; -
继续执行
sleep
函数后代码。
这里是JS代码片段系列,记录开发过程常见代码片段,往期精选JS代码片段: