Appearance
useTimeoutPoll
Use timeout to poll something — it triggers the callback after the last task is done.
Demo
Usage
tsx
import { useTimeoutPoll } from '@reause/core'
import { useState } from 'react'
const [count, setCount] = useState(0)
async function fetchData() {
await new Promise(resolve => setTimeout(resolve, 1000))
setCount(count => count + 1)
}
// Only trigger after last fetch is done
const { isActive, pause, resume } = useTimeoutPoll(fetchData, 1000)Type Declarations
ts
export interface UseTimeoutPollOptions {
immediate?: boolean;
immediateCallback?: boolean;
}
export interface Pausable {
isActive: boolean;
pause: () => void;
resume: () => void;
}
type Awaitable<T> = T | Promise<T>
export function useTimeoutPoll(fn: () => Awaitable<void>, interval: number, options?: UseTimeoutPollOptions): Pausable