js after 实现
实现延迟执行的方法
在JavaScript中,实现延迟执行(类似after的效果)可以通过多种方式完成。以下是几种常见的方法:
使用setTimeout
setTimeout(() => {
// 延迟执行的代码
}, delayInMilliseconds);
使用Promise
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
delay(1000).then(() => {
// 延迟1秒后执行的代码
});
使用async/await
async function runAfterDelay() {
await new Promise(resolve => setTimeout(resolve, 2000));
// 延迟2秒后执行的代码
}
runAfterDelay();
实现周期性延迟执行
如果需要周期性延迟执行(类似setInterval但每次执行后都有延迟),可以使用递归方式:
function executeAfter(interval, callback) {
setTimeout(() => {
callback();
executeAfter(interval, callback);
}, interval);
}
executeAfter(1000, () => {
console.log('每秒执行一次');
});
实现链式延迟调用
对于需要多个操作按顺序延迟执行的情况:
function chainDelays(...actions) {
let delay = 0;
actions.forEach(([waitMs, callback]) => {
delay += waitMs;
setTimeout(callback, delay);
});
}
chainDelays(
[1000, () => console.log('1秒后执行')],
[2000, () => console.log('再等2秒后执行')]
);
使用第三方库
一些库如Lodash提供了_.delay方法:

_.delay(function() {
console.log('延迟执行');
}, 1000);
注意事项
- 清除延迟执行可以使用
clearTimeout - 在Node.js环境中还可以使用
setImmediate实现类似效果 - 浏览器环境中的最小延迟时间通常是4ms(根据HTML5规范)





