JavaScript 如何实现 sleep 函数


很多编程语言里如 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 更直观一些