当前位置:首页 > JavaScript

js实现延时执行

2026-01-31 00:08:53JavaScript

延时执行的方法

在JavaScript中,实现延时执行有多种方式,以下是几种常见的方法:

setTimeout

使用setTimeout函数可以在指定的时间后执行代码。该方法接受一个回调函数和延迟时间(毫秒)作为参数。

js实现延时执行

setTimeout(() => {
  console.log('这段代码将在1秒后执行');
}, 1000);

Promise与async/await

结合Promiseasync/await可以实现更清晰的延时逻辑,尤其适用于需要链式调用的场景。

const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));

async function delayedFunction() {
  await delay(2000);
  console.log('这段代码将在2秒后执行');
}

delayedFunction();

setInterval与clearInterval

如果需要周期性执行代码,可以使用setInterval,并通过clearInterval取消。

js实现延时执行

let intervalId = setInterval(() => {
  console.log('这段代码每1秒执行一次');
}, 1000);

// 5秒后取消定时器
setTimeout(() => {
  clearInterval(intervalId);
}, 5000);

requestAnimationFrame

对于需要与浏览器渲染帧同步的延时操作,可以使用requestAnimationFrame。适合动画或高频更新的场景。

function delayedAnimation() {
  const start = Date.now();
  function frame() {
    if (Date.now() - start < 1000) {
      requestAnimationFrame(frame);
    } else {
      console.log('1秒后执行动画逻辑');
    }
  }
  requestAnimationFrame(frame);
}

delayedAnimation();

使用Generator函数

通过Generator函数和yield可以实现分步延时执行,适用于复杂流程控制。

function* delayedTasks() {
  yield new Promise(resolve => setTimeout(resolve, 1000));
  console.log('第一步完成');
  yield new Promise(resolve => setTimeout(resolve, 1500));
  console.log('第二步完成');
}

const iterator = delayedTasks();
iterator.next().value.then(() => iterator.next());

注意事项

  • setTimeoutsetInterval的延迟时间并非精确值,实际执行时间可能受浏览器或系统负载影响。
  • 在单页应用(SPA)或组件卸载时,需及时清理定时器以避免内存泄漏。
  • 高频延时操作(如动画)优先使用requestAnimationFrame以提升性能。

标签: js
分享给朋友:

相关文章

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏…