当前位置:首页 > JavaScript

js实现暂停代码

2026-02-03 07:24:59JavaScript

实现暂停代码的方法

在JavaScript中,可以通过多种方式实现代码的暂停或延迟执行。以下是几种常见的方法:

使用 setTimeout 延迟执行

setTimeout 可以在指定的毫秒数后执行一段代码,从而实现暂停效果。

console.log("开始执行");
setTimeout(() => {
    console.log("延迟2秒后执行");
}, 2000);

使用 async/awaitPromise

通过 Promiseasync/await 可以更灵活地控制代码的暂停。

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function demo() {
    console.log("开始执行");
    await sleep(2000);
    console.log("暂停2秒后继续");
}
demo();

使用 Generator 函数

Generator 函数可以通过 yield 暂停代码执行,并通过 next() 恢复执行。

function* pauseableCode() {
    console.log("第一步");
    yield;
    console.log("第二步");
}

const generator = pauseableCode();
generator.next(); // 执行到第一个 yield
setTimeout(() => generator.next(), 2000); // 2秒后继续执行

使用 requestAnimationFrame

对于动画或需要与浏览器帧同步的暂停,可以使用 requestAnimationFrame

js实现暂停代码

function pauseWithAnimation(duration, callback) {
    const start = performance.now();
    function checkTime(now) {
        if (now - start < duration) {
            requestAnimationFrame(checkTime);
        } else {
            callback();
        }
    }
    requestAnimationFrame(checkTime);
}

console.log("开始");
pauseWithAnimation(2000, () => console.log("2秒后继续"));

注意事项

  • setTimeoutPromise 是异步的,不会阻塞主线程。
  • Generator 函数适合需要手动控制暂停的场景。
  • requestAnimationFrame 适用于动画或高频更新的场景。

根据具体需求选择合适的方法,避免在主线程中使用同步阻塞(如 while 循环),以免导致页面卡顿。

标签: 代码js
分享给朋友:

相关文章

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

css网页制作代码

css网页制作代码

以下是一些常用的CSS网页制作代码示例,涵盖布局、样式和交互效果: 基础布局与样式 重置浏览器默认样式 * { margin: 0; padding: 0; box-sizing: b…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…