我的github
在 JavaScript 中,要实现 for 循环每次迭代之间等待 1 秒,可以使用 async/await 和 setTimeout 的组合。这种方式能确保每次循环执行完后暂停一段时间再继续。

以下是一个示例代码:
async function delayedLoop() {
    const items = [1, 2, 3, 4, 5];
    
    for (const item of items) {
        console.log('当前执行:', item);
        
        // 等待 1 秒(1000 毫秒)
        await new Promise(resolve => setTimeout(resolve, 1000));
    }
    
    console.log('循环执行完毕');
}

// 调用函数启动延迟循环
delayedLoop();

代码说明:

  1. 异步函数:使用 async 关键字声明函数,以便在内部使用 await
  2. Promise 和 setTimeout:await new Promise(resolve => setTimeout(resolve, 1000)) 创建一个 Promise,该 Promise 会在 1 秒后自动 resolve,从而暂停循环执行。
  3. 循环逻辑:每次迭代打印当前项,然后等待 1 秒再继续下一次迭代。

注意事项:

  • 这种方法适用于需要延迟的非阻塞操作,不会冻结整个页面。
  • 如果需要在浏览器环境中更新 UI(如进度条),这种延迟方式能确保 UI 有时间渲染。
  • 若要控制循环次数,可直接使用 for (let i = 0; i < n; i++) 结构,逻辑相同。

参考:https://www.doubao.com/chat/11511516010745346

posted on 2025-07-08 16:01  XiaoNiuFeiTian  阅读(537)  评论(0)    收藏  举报