当前位置:首页 > 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
分享给朋友:

相关文章

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js 进度条的实现

js 进度条的实现

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

js分组实现

js分组实现

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

js 实现链表

js 实现链表

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