当前位置:首页 > JavaScript

js实现延迟

2026-01-13 14:15:17JavaScript

实现延迟的方法

在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法:

使用setTimeout函数

setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回调函数和延迟时间(毫秒)作为参数。

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

使用async/await配合Promise

通过创建一个返回Promise的函数,结合async/await语法可以实现更清晰的延迟逻辑。

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

async function delayedFunction() {
  console.log('开始');
  await delay(2000);
  console.log('2秒后执行');
}

使用setInterval实现周期性延迟

如果需要周期性执行某个操作,可以使用setInterval函数。

let counter = 0;
const intervalId = setInterval(() => {
  console.log(`第${++counter}次执行`);
  if(counter >= 5) clearInterval(intervalId);
}, 1000);

使用requestAnimationFrame

对于需要与浏览器渲染同步的延迟操作,requestAnimationFrame是更好的选择。

function delayedAnimation() {
  let start = null;
  function step(timestamp) {
    if (!start) start = timestamp;
    const progress = timestamp - start;
    if (progress < 2000) {
      requestAnimationFrame(step);
    } else {
      console.log('2秒后执行的动画操作');
    }
  }
  requestAnimationFrame(step);
}

使用Generator函数

通过Generator函数可以实现更复杂的延迟控制逻辑。

js实现延迟

function* delayedGenerator() {
  yield new Promise(resolve => setTimeout(resolve, 1000));
  console.log('1秒后执行');
  yield new Promise(resolve => setTimeout(resolve, 2000));
  console.log('再2秒后执行');
}

const gen = delayedGenerator();
gen.next().value.then(() => gen.next());

每种方法适用于不同的场景,setTimeout适合简单的延迟操作,Promise和async/await适合处理异步流程,setInterval适合周期性任务,requestAnimationFrame适合动画相关的延迟,Generator适合复杂的控制流程。

标签: js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js 实现vue

js 实现vue

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

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js图片轮播的实现

js图片轮播的实现

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

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…