很多编程语言里如 JAVA、C、C# 等,都有一个通知宿主当前任务将进入睡眠状态的函数:sleep。
JS中没有类似的函数,如果我们只是想用 sleep 函数来延迟执行某些代码,下面的函数就能实现
实现代码:
function sleep(ms) {
return new Promise(res => setTimeout(res, ms));
}
用法:
// 方式一:
sleep(2000).then(()=>{
console.log('执行');// 2 秒后执行
})
// 方式二: 使用 async 函数
async function demo() {
await sleep(2000);
console.log('执行');// 2 秒后执行
}
demo();
原理:
在 JS 中延迟执行代码一般通过 setTimeout
实现
通过 Promise 解决嵌套过多问题
通过方式二的异步函数来使用 sleep 更直观一些