--- category: Watch alias: pausableWatch --- # watchPausable Pausable watch ::: info This function will be removed in future version. ::: ::: tip [Pausable Watcher](https://vuejs.org/api/reactivity-core.html#watch) has been added to Vue [since 3.5](https://github.com/vuejs/core/pull/9651), use `const { stop, pause, resume } = watch(watchSource, callback)` instead. ::: ## Usage Use as normal the `watch`, but return extra `pause()` and `resume()` functions to control. ```ts import { watchPausable } from '@vueuse/core' import { nextTick, shallowRef } from 'vue' const source = shallowRef('foo') const { stop, pause, resume } = watchPausable( source, v => console.log(`Changed to ${v}!`), ) source.value = 'bar' await nextTick() // Changed to bar! pause() source.value = 'foobar' await nextTick() // (nothing happend) resume() source.value = 'hello' await nextTick() // Changed to hello! ``` ## Type Declarations ```ts export interface WatchPausableReturn extends Pausable { stop: WatchStopHandle } export type WatchPausableOptions = WatchWithFilterOptions & PausableFilterOptions /** * @deprecated This function will be removed in future version. */ export declare function watchPausable< T extends Readonly, Immediate extends Readonly = false, >( sources: [...T], cb: WatchCallback, MapOldSources>, options?: WatchPausableOptions, ): WatchPausableReturn export declare function watchPausable< T, Immediate extends Readonly = false, >( source: WatchSource, cb: WatchCallback, options?: WatchPausableOptions, ): WatchPausableReturn export declare function watchPausable< T extends object, Immediate extends Readonly = false, >( source: T, cb: WatchCallback, options?: WatchPausableOptions, ): WatchPausableReturn /** @deprecated use `watchPausable` instead */ export declare const pausableWatch: typeof watchPausable ```