24 lines
400 B
JavaScript
24 lines
400 B
JavaScript
|
|
||
|
export const makeFetcher = (call, interval) => {
|
||
|
let stopped = false
|
||
|
let timeout = null
|
||
|
let func = () => {}
|
||
|
|
||
|
func = () => {
|
||
|
call().finally(() => {
|
||
|
console.log('callbacks')
|
||
|
if (stopped) return
|
||
|
timeout = window.setTimeout(func, interval)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
const stopFetcher = () => {
|
||
|
stopped = true
|
||
|
window.cancelTimeout(timeout)
|
||
|
}
|
||
|
|
||
|
func()
|
||
|
|
||
|
return stopFetcher
|
||
|
}
|