setInterval 和 setTimeout 什么区别

1. setInterval

setInterval 会固定间隔重复执行。

setInterval(() => {
console.log('每 3 秒执行一次')
}, 3000)

第 3 秒执行一次
第 6 秒执行一次
第 9 秒执行一次
第 12 秒执行一次

它的意思是:不管上一次请求有没有完成,每 3 秒都触发一次。

如果网络慢一点,可能出现这种情况:

第 0 秒:发起第 1 次查询
第 3 秒:第 1 次还没返回,又发起第 2 次查询
第 6 秒:第 2 次还没返回,又发起第 3 次查询

2. setTimeout

setTimeout 是延迟执行一次

setTimeout(() => {
console.log('3 秒后执行一次')
}, 3000)

先查一次支付状态
等这次请求结束
再等 3 秒
再查下一次

setTimeout 不会天然阻止重复请求;但用“请求完成后再 setTimeout 安排下一次”的写法,就可以保证上一次没完成时不会执行第二次请求。

posted @ 2026-07-08 13:48  学无边涯  阅读(54)  评论(0)    收藏  举报