js实现延时执行
延时执行方法
在JavaScript中,延时执行可以通过多种方式实现,以下是几种常见的方法:
setTimeout
使用setTimeout函数可以在指定的毫秒数后执行代码:
setTimeout(() => {
console.log('这段代码将在1秒后执行');
}, 1000);
Promise与async/await

结合Promise和async/await可以实现更清晰的延时逻辑:
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function delayedAction() {
await delay(2000);
console.log('这段代码将在2秒后执行');
}
delayedAction();
requestAnimationFrame

对于需要与浏览器渲染同步的延时操作,可以使用requestAnimationFrame:
function delayedAnimation() {
const start = Date.now();
function frame() {
if (Date.now() - start >= 1500) {
console.log('1.5秒后执行的动画相关操作');
return;
}
requestAnimationFrame(frame);
}
requestAnimationFrame(frame);
}
delayedAnimation();
setInterval与clearInterval
需要重复执行时可以使用setInterval,记得用clearInterval停止:
let counter = 0;
const intervalId = setInterval(() => {
console.log(`每500ms执行一次,当前计数: ${++counter}`);
if (counter >= 5) clearInterval(intervalId);
}, 500);
注意事项
- 浏览器环境中最小延时实际为4ms(HTML5规范),即使设置更小值也会按4ms处理
- Node.js环境没有这个限制,但实际精度取决于系统
- 大量延时任务建议使用任务队列管理,避免性能问题
- Web Worker适合处理长时间运行的延时任务,避免阻塞主线程






