Skip to content

useTimeoutPoll

Category
Export Size
352 B
Last Changed
5 days ago

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

Source

Source · Demo · VueUse

Contributors

hairyf

Changelog

v0.1.0 on
f55e4 - fix(core): resolve useTimeoutPoll audit findings (#671)

Released under the MIT License. v0.1.8