js实现等待
实现等待的方法
在JavaScript中实现等待功能可以通过多种方式完成,以下是几种常见的方法:
使用setTimeout实现延迟执行
通过setTimeout可以在指定的毫秒数后执行回调函数。例如,延迟1秒后执行某个操作:
setTimeout(() => {
console.log('等待1秒后执行');
}, 1000);
使用Promise和async/await实现异步等待
通过Promise和async/await可以更优雅地实现等待功能。例如,创建一个等待函数:

function wait(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function delayedAction() {
console.log('开始等待');
await wait(2000); // 等待2秒
console.log('等待结束');
}
delayedAction();
使用setInterval实现周期性等待
如果需要周期性执行某个操作,可以使用setInterval。例如,每隔1秒执行一次:
let counter = 0;
const intervalId = setInterval(() => {
console.log(`第${++counter}次执行`);
if (counter >= 5) {
clearInterval(intervalId); // 停止执行
}
}, 1000);
使用requestAnimationFrame实现动画等待

对于动画或高频更新的场景,requestAnimationFrame是更好的选择。例如,实现一个平滑的动画等待:
function animate() {
console.log('动画帧执行');
requestAnimationFrame(animate);
}
animate();
使用Event Loop和微任务队列
通过Promise.resolve().then()可以将任务放入微任务队列,实现更精细的等待控制:
console.log('开始');
Promise.resolve().then(() => {
console.log('微任务执行');
});
console.log('结束');
以上方法可以根据具体需求选择使用。setTimeout和setInterval适用于简单的延迟或周期性任务,而Promise和async/await更适合处理复杂的异步逻辑。requestAnimationFrame和微任务队列则适用于特定场景的高性能需求。





