js实现等待几秒
使用 setTimeout 实现延迟执行
通过 setTimeout 函数可以实现在指定时间后执行代码。第一个参数是回调函数,第二个参数是延迟的毫秒数。
setTimeout(() => {
console.log('这段代码将在3秒后执行');
}, 3000);
结合 Promise 实现可等待的延迟
创建一个返回 Promise 的函数,利用 setTimeout 在指定时间后 resolve Promise,可以配合 async/await 使用。
function wait(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function delayedAction() {
console.log('开始等待');
await wait(2000);
console.log('2秒后执行');
}
使用 async/await 实现同步式等待
在 async 函数中,可以用 await 等待 Promise 解决,实现类似同步代码的等待效果。
async function run() {
console.log('第一步');
await new Promise(resolve => setTimeout(resolve, 1500));
console.log('1.5秒后执行第二步');
}
循环中的间隔执行
通过递归或循环配合 setTimeout 可以实现间隔一定时间重复执行。

function repeatEvery(interval, times, action) {
if(times <= 0) return;
setTimeout(() => {
action();
repeatEvery(interval, times - 1, action);
}, interval);
}
repeatEvery(1000, 5, () => console.log('每秒执行一次'));
注意事项
- 时间参数单位是毫秒(1000毫秒=1秒)
- setTimeout 的延迟时间不保证精确,会受到主线程阻塞影响
- 大量使用 setTimeout 可能导致内存泄漏,必要时使用 clearTimeout 取消






