在 JavaScript 中,要实现 for 循环每次迭代之间等待 1 秒,可以使用 async/await 和 setTimeout 的组合。这种方式能确保每次循环执行完后暂停一段时间再继续。
以下是一个示例代码:
- 异步函数:使用
async 关键字声明函数,以便在内部使用 await。
- Promise 和 setTimeout:
await new Promise(resolve => setTimeout(resolve, 1000)) 创建一个 Promise,该 Promise 会在 1 秒后自动 resolve,从而暂停循环执行。
- 循环逻辑:每次迭代打印当前项,然后等待 1 秒再继续下一次迭代。
- 这种方法适用于需要延迟的非阻塞操作,不会冻结整个页面。
- 如果需要在浏览器环境中更新 UI(如进度条),这种延迟方式能确保 UI 有时间渲染。
- 若要控制循环次数,可直接使用
for (let i = 0; i < n; i++) 结构,逻辑相同。
参考:https://www.doubao.com/chat/11511516010745346