1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| import Watcher from 'core/observer/watcher'
| import { noop } from 'shared/util'
| import { currentInstance } from '../currentInstance'
|
| // export type EffectScheduler = (...args: any[]) => any
|
| /**
| * @internal since we are not exposing this in Vue 2, it's used only for
| * internal testing.
| */
| export function effect(fn: () => any, scheduler?: (cb: any) => void) {
| const watcher = new Watcher(currentInstance, fn, noop, {
| sync: true
| })
| if (scheduler) {
| watcher.update = () => {
| scheduler(() => watcher.run())
| }
| }
| }
|
|