function simplePoller(queryFn, callback, { baseTime, timeRate }) {
// 默认时间1秒
let baseT = baseTime || 1000
// 每次循环timeOut时间是原时间的倍数,默认1.5倍
const timeR = timeRate || 1.5
let timeOutFun = (time) => {
let timer = setTimeout(() => {
let result = queryFn()
if (result) {
// 返回true时,执行回调函数
callback()
} else {
// 执行为false时,再次执行超时函数
if (timeR !== 1) {
time = Math.ceil(time * timeR);
}
timeOutFun(time)
}
// 清除每次超时调用
clearTimeout(timer)
timer = null
}, time)
}
timeOutFun(baseT)
}
js 轮询函数
最新推荐文章于 2024-08-26 10:39:00 发布
functionsimplePoller是一个JavaScript函数,用于实现基于查询函数queryFn的动态超时循环。它接受一个回调函数callback,以及可选的基础时间和时间比率。默认基础时间为1秒,每次循环时间是原时间的1.5倍。如果queryFn返回true,执行回调;否则,根据时间比率继续循环。每次超时后会清除并重置定时器。
摘要由CSDN通过智能技术生成