js实现settimeout
使用 setTimeout 实现延时执行
在 JavaScript 中,setTimeout 是一个用于在指定时间后执行代码的方法。它接受两个参数:回调函数和延迟时间(毫秒)。
setTimeout(() => {
console.log('这段代码将在 1 秒后执行');
}, 1000);
清除 setTimeout 的定时器
setTimeout 返回一个定时器 ID,可以通过 clearTimeout 取消尚未执行的延时操作。

const timerId = setTimeout(() => {
console.log('这段代码不会执行');
}, 1000);
clearTimeout(timerId);
传递参数给回调函数
从第三个参数开始,setTimeout 可以接受额外的参数,这些参数会传递给回调函数。
setTimeout((message) => {
console.log(message); // 输出: 'Hello, World!'
}, 1000, 'Hello, World!');
使用箭头函数保持 this 指向
在对象方法中使用 setTimeout 时,箭头函数可以保持 this 的正确指向。

const obj = {
name: 'Object',
greet() {
setTimeout(() => {
console.log(this.name); // 输出: 'Object'
}, 1000);
}
};
obj.greet();
实现递归 setTimeout
setTimeout 可以用于实现周期性操作,相比 setInterval 能更精确控制执行间隔。
function repeat() {
console.log('每 1 秒执行一次');
setTimeout(repeat, 1000);
}
setTimeout(repeat, 1000);
处理异步操作的超时
setTimeout 常用于为异步操作设置超时限制。
function fetchWithTimeout(url, timeout) {
return new Promise((resolve, reject) => {
const timer = setTimeout(() => {
reject(new Error('请求超时'));
}, timeout);
fetch(url)
.then(response => {
clearTimeout(timer);
resolve(response);
})
.catch(reject);
});
}






