当前位置:首页 > JavaScript

js实现延时执行

2026-01-31 00:08:53JavaScript

延时执行的方法

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

setTimeout

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

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取消。

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可以实现分步延时执行,适用于复杂流程控制。

js实现延时执行

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 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现自举

js实现自举

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

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…