setTimeout 递归
时间: 2023-12-09 10:39:26 浏览: 101
可以使用递归来实现在一定时间间隔后重复执行setTimeout函数的效果。下面是一个示例:
```javascript
function recursiveTimeout() {
// 执行某些操作
// 设置下一个定时器
setTimeout(recursiveTimeout, 1000); // 1秒后再次执行recursiveTimeout函数
}
// 第一次调用递归函数
recursiveTimeout();
```
在上面的示例中,`recursiveTimeout`函数执行了一些操作,然后通过`setTimeout`函数设置了下一个定时器,延迟时间为1秒(1000毫秒)。这样就实现了每隔1秒执行一次`recursiveTimeout`函数的效果。
需要注意的是,在使用递归调用`setTimeout`时要小心,以免出现无限递归导致浏览器崩溃。确保在递归函数中有适当的终止条件或者控制逻辑。
相关问题
vue写一个setTimeout的递归函数
好的,这是一个简单的递归函数,用于模拟 setInterval 的效果。
```
function timer(fn, delay) {
let timeoutId;
function tick() {
fn();
timeoutId = setTimeout(tick, delay);
}
tick();
return {
cancel: () => {
clearTimeout(timeoutId);
}
};
}
```
你可以像这样使用它:
```
const { cancel } = timer(() => {
console.log('tick');
}, 1000);
// 在某个时候取消
cancel();
```
js写一个setTimeout()递归
setTimeout() 递归的实现需要在延迟后再次调用函数本身,下面是示范代码:
```javascript
function recursion() {
console.log("Hello!");
setTimeout(recursion, 1000);
}
recursion();
```
上述代码将每隔一秒钟输出 "Hello!" 一次,直到手动停止执行。
阅读全文