当前位置:首页 > JavaScript

js实现延时

2026-04-05 23:42:52JavaScript

使用 setTimeout 实现延时

setTimeout 是 JavaScript 中最常用的延时方法,用于在指定的毫秒数后执行函数或代码片段。

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

可以传递参数给回调函数:

setTimeout((param1, param2) => {
  console.log(param1, param2);
}, 1000, '参数1', '参数2');

使用 Promise 实现延时

结合 Promise 可以创建更可控的延时逻辑,特别适合在 async/await 中使用。

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

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

使用 async/await 处理延时

async/await 语法让延时逻辑更清晰,避免回调地狱。

async function processWithDelay() {
  await new Promise(resolve => setTimeout(resolve, 1500));
  console.log('1.5秒后执行');
  return '完成';
}

取消延时执行

clearTimeout 可以取消尚未执行的延时操作。

const timeoutId = setTimeout(() => {
  console.log('这段代码不会执行');
}, 1000);

clearTimeout(timeoutId);

递归实现间隔延时

通过递归调用 setTimeout 可以实现类似 setInterval 的效果,但能更好地控制每次执行的间隔。

function repeatWithDelay(count, delay) {
  if (count <= 0) return;

  setTimeout(() => {
    console.log(`执行第 ${count} 次`);
    repeatWithDelay(count - 1, delay);
  }, delay);
}

浏览器环境下的 requestAnimationFrame

对于需要与屏幕刷新率同步的动画延时,requestAnimationFrame 是更好的选择。

function animateWithDelay(timestamp) {
  // 动画逻辑
  requestAnimationFrame(animateWithDelay);
}

requestAnimationFrame(animateWithDelay);

Node.js 环境的 setImmediate

在 Node.js 中,setImmediate 可以在当前事件循环结束后立即执行代码,作为零延迟的替代方案。

js实现延时

setImmediate(() => {
  console.log('在当前事件循环结束后执行');
});

标签: js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…

js实现弹框

js实现弹框

使用 alert 实现简单弹框 JavaScript 的 alert 方法可以直接显示一个简单的弹框,内容为纯文本: alert("这是一个简单的弹框"); 使用 confirm 实现确认弹框…

vue.js实现app

vue.js实现app

Vue.js 实现 App 的方法 Vue.js 可以用于开发移动端 App,主要通过以下两种方式实现: 使用 Capacitor 或 Cordova 进行混合开发 Capacitor 和 Cor…

vue.js实现restful

vue.js实现restful

Vue.js 实现 RESTful API 调用 在 Vue.js 中实现 RESTful API 调用通常涉及以下几个关键步骤: 安装 Axios Axios 是一个流行的 HTTP 客户端,用于…