当前位置:首页 > JavaScript

js实现延时

2026-02-01 07:12:49JavaScript

使用 setTimeout 实现延时

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

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

示例代码:

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

结合 Promise 实现异步延时

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

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 可以取消尚未执行的延时操作:

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

js实现延时

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实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…