javascript如何暂停运行若干秒
封面图
•
2025-11-24
•
JavaScript
230
0
0
0
在 JavaScript 中,如果你想**暂停运行若干秒**(即让程序“等待”一段时间),可以使用以下几种方法: --- ### ✅ 方法一:使用 `setTimeout`(异步方式) 这是最常用的方式,但它是**异步的**,不会阻塞后续代码执行。 ```javascript console.log("开始"); setTimeout(() => { console.log("3秒后执行"); }, 3000); console.log("结束"); ``` **输出:** ``` 开始 结束 3秒后执行 ``` --- ### ✅ 方法二:使用 `async/await` + `Promise`(同步式写法,推荐现代项目) ```javascript function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function run() { console.log("开始"); await sleep(3000); // 暂停3秒 console.log("3秒后执行"); console.log("结束"); } run(); ``` **输出:** ``` 开始 3秒后执行 结束 ``` > ⚠️ 注意:`await` 只能在 `async` 函数中使用。 --- ### ❌ 不推荐:使用同步阻塞方式(如 `while` 循环) 虽然可以通过循环来“模拟”暂停,但这会**阻塞浏览器或 Node.js 的主线程**,导致页面无响应或性能问题。 ```javascript // 不推荐! function sleepSync(ms) { const start = Date.now(); while (Date.now() - start < ms) { // 空循环,阻塞线程 } } console.log("开始"); sleepSync(3000); console.log("3秒后执行"); ``` > 这种方式**不推荐**用于浏览器环境或高性能场景。 --- ### 总结 | 方法 | 是否阻塞 | 推荐程度 | 说明 | |------|----------|----------|------| | `setTimeout` | 否 | ✅✅✅ | 异步,适合大多数场景 | | `async/await + Promise` | 否 | ✅✅✅ | 更简洁、易读的异步写法 | | 同步循环 | 是 | ❌ | 阻塞主线程,不推荐 | --- 如果你是在 **Node.js** 环境中运行,也可以使用 `require('fs').promises.sleep()` 或 `util.promisify(setTimeout)` 等方式实现类似功能。 需要我帮你封装一个通用的 `sleep` 函数吗?
上一篇:
判断 iframe 是否加载完毕
下一篇:
Localstorage和sessionstorage区别
标题录入,一次不能超过6条
留言
评论