在JavaScript中,可以使用setTimeout()
函数来创建一个定时器,从而实现异步的延迟效果。如果想要进行同步延时操作,则需要结合其他技术或者库来实现。
下面是一种常见的实现方式,通过递归调用自身来模拟同步延时效果:
function syncDelay(delayTime) {
const start = Date.now(); // 记录开始时间
function delay() {
const current = Date.now(); // 获取当前时间
if (current - start >= delayTime) {
console.log("已经达到指定的延时时间");
return; // 返回结束递归
} else {
setTimeout(() => {
delay(); // 再次调用自身,形成递归
}, Math.max(0, delayTime - (Date.now() - start))); // 计算还有多少时间未到达目标延时时间
}
}
delay(); // 初始化启动递归
}
// 示例调用
syncDelay(2000); // 设置延时为2秒