当前位置:首页 > JavaScript

js实现延时

2026-02-01 07:12:49JavaScript

使用 setTimeout 实现延时

JavaScript 中 setTimeout 是最常用的延时方法,用于在指定时间后执行回调函数。语法如下:

setTimeout(callback, delayInMilliseconds, [arg1, arg2, ...]);

示例代码:

setTimeout(() => {
  console.log('延时2秒后执行');
}, 2000);

结合 Promise 实现异步延时

通过封装 setTimeout 为 Promise,可以更方便地在异步流程中使用延时:

js实现延时

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

// 使用示例
async function demo() {
  console.log('开始');
  await delay(3000); // 等待3秒
  console.log('结束');
}

使用 async/await 处理延时链

在需要连续延时的场景中,async/await 能保持代码可读性:

async function timedSequence() {
  await delay(1000);
  console.log('第一步完成');

  await delay(1500);
  console.log('第二步完成');
}

取消延时执行

通过 clearTimeout 可以取消尚未执行的延时操作:

js实现延时

const timerId = setTimeout(() => {
  console.log('这行不会执行');
}, 1000);

clearTimeout(timerId);

递归实现间隔延时

需要重复延时执行时,可采用递归方式:

function repeatWithDelay(callback, interval, times) {
  if (times <= 0) return;

  setTimeout(() => {
    callback();
    repeatWithDelay(callback, interval, times - 1);
  }, interval);
}

// 每1秒执行一次,共3次
repeatWithDelay(() => console.log('执行'), 1000, 3);

浏览器动画帧延时

对于需要与屏幕刷新率同步的延时,可使用 requestAnimationFrame

function frameDelay(callback) {
  let start = performance.now();

  function checkTime(timestamp) {
    if (timestamp - start >= 1000) { // 延时1秒
      callback();
    } else {
      requestAnimationFrame(checkTime);
    }
  }

  requestAnimationFrame(checkTime);
}

标签: js
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现授权

js实现授权

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

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现 拖动

js实现 拖动

实现拖动的步骤 HTML 结构 创建一个可拖动的元素和一个放置区域: <div id="draggable" draggable="true">拖动我</div> <d…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…