JavaScript 模拟 sleep, 暂停几秒后再执行
封面图
•
2025-10-21
•
JavaScript
192
0
0
0
在 JavaScript 中,如果你想要“暂停”几秒后再执行后续代码(即模拟 `sleep`),可以使用 `Promise` 和 `setTimeout` 来实现。因为 JavaScript 是单线程的,不能真正“阻塞”主线程,但可以通过异步方式实现类似效果。 ### 方法一:使用 `async/await` + `Promise` ```javascript function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } // 使用示例 (async () => { console.log('开始'); await sleep(3000); // 暂停 3 秒 console.log('3 秒后执行'); })(); ``` ### 方法二:不使用 `async/await`(传统方式) ```javascript function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } sleep(3000).then(() => { console.log('3 秒后执行'); }); ``` ### 注意事项: - `sleep` 是一个模拟方法,不是真正的阻塞。 - 在浏览器中,长时间的 `setTimeout` 可能会被浏览器优化或延迟执行(比如页面不可见时)。 - 如果你是在 Node.js 环境中,也可以使用 `util.promisify` 或 `setTimeout` 实现类似功能。 ### Node.js 示例(如果需要): ```javascript const { promisify } = require('util'); const sleep = promisify(setTimeout); (async () => { console.log('开始'); await sleep(3000); console.log('3 秒后执行'); })(); ``` 如果你有更具体的场景(如在某个函数中调用、处理异步任务等),欢迎告诉我,我可以提供更详细的解决方案。
上一篇:
如何使用ESLint和Prettier进行代码分析和格式化
下一篇:
判断 iframe 是否加载完毕
标题录入,一次不能超过6条
返回顶部
留言
留言
评论