Files
fuel-price/.agents/skills/vueuse-functions/references/useTimeout.md
Ovidiu U 4a3ce4cc1d
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
docs: add advanced skills for Vitest, Pinia, and Vue built-ins
Add comprehensive reference documentation for:
- Vitest: environments, projects/workspaces, type testing, vi utilities
- Pinia: HMR, Nuxt integration, SSR setup
- Vue: built-in components (Transition, Teleport, Suspense, KeepAlive) and advanced directives
2026-04-11 16:28:36 +01:00

114 lines
2.3 KiB
Markdown

---
category: Animation
---
# useTimeout
Reactive value that becomes `true` after a given time.
## Usage
```ts
import { useTimeout } from '@vueuse/core'
const ready = useTimeout(1000)
```
After 1 second, `ready.value` becomes `true`.
### With Controls
```ts
import { useTimeout } from '@vueuse/core'
const { ready, start, stop, isPending } = useTimeout(1000, { controls: true })
// Check if timeout is pending
console.log(isPending.value) // true
// Stop the timeout
stop()
// Start/restart the timeout
start()
```
### Options
| Option | Type | Default | Description |
| ----------- | ------------ | ------- | ------------------------------------------------ |
| `controls` | `boolean` | `false` | Expose `start`, `stop`, and `isPending` controls |
| `immediate` | `boolean` | `true` | Start the timeout immediately |
| `callback` | `() => void` | — | Called when the timeout completes |
### Callback on Timeout
```ts
import { useTimeout } from '@vueuse/core'
useTimeout(1000, {
callback: () => {
console.log('Timeout completed!')
},
})
```
### Reactive Interval
The timeout duration can be reactive:
```ts
import { useTimeout } from '@vueuse/core'
const duration = ref(1000)
const ready = useTimeout(duration)
// Change the duration (only affects future timeouts when using controls)
duration.value = 2000
```
## Type Declarations
```ts
export interface UseTimeoutOptions<
Controls extends boolean,
> extends UseTimeoutFnOptions {
/**
* Expose more controls
*
* @default false
*/
controls?: Controls
/**
* Callback on timeout
*/
callback?: Fn
}
export type UseTimeoutReturn =
| ComputedRef<boolean>
| ({
readonly ready: ComputedRef<boolean>
} & Stoppable)
/**
* @deprecated use UseTimeoutReturn instead
*/
export type UseTimoutReturn = UseTimeoutReturn
/**
* Update value after a given time with controls.
*
* @see {@link https://vueuse.org/useTimeout}
* @param interval
* @param options
*/
export declare function useTimeout(
interval?: MaybeRefOrGetter<number>,
options?: UseTimeoutOptions<false>,
): ComputedRef<boolean>
export declare function useTimeout(
interval: MaybeRefOrGetter<number>,
options: UseTimeoutOptions<true>,
): {
ready: ComputedRef<boolean>
} & Stoppable
```