当前位置:首页 > JavaScript

js实现暂停代码

2026-02-03 07:24:59JavaScript

实现暂停代码的方法

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

使用 setTimeout 延迟执行

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

js实现暂停代码

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

使用 async/awaitPromise

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

js实现暂停代码

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

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 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swip…

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Paren…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…