Skip to content

utils/watches ​

Classes ​

AwaitNot ​

Manages an asynchronous watch on a property, waiting for it to toggle between true and false states. This class uses immediate watchers to react to changes and supports a timeout to limit waiting duration.

Constructors ​

Constructor ​

new AwaitNot(options): AwaitNot

Initializes the AwaitNot with specified options for reactive property watching and timeout settings.

Parameters ​
options ​

Configuration options for AwaitNot.

couldAlreadyBeFalse? ​

boolean = false

Indicates if the property could already be in the false state at initialization.

obj? ​

any

The object containing the property to watch.

prop? ​

string

The property name to watch within the object.

ref? ​

Ref<any, any>

A Vue ref to directly watch if provided.

timeout? ​

number = 1000

The timeout in milliseconds before the promise is rejected.

Returns ​

AwaitNot

Properties ​

couldAlreadyBeFalse ​

couldAlreadyBeFalse: boolean

falseISW ​

falseISW: ImmediateStopWatch

promise ​

promise: Promise<any>

ref ​

ref: Readonly<Ref<any, any>>

reject ​

reject: (reason?) => void

Parameters ​
reason? ​

any

Returns ​

void

resolve ​

resolve: (value) => void

Parameters ​
value ​

any

Returns ​

void

timeout ​

timeout: AwaitTimeout

timeoutError ​

timeoutError: AwaitNotError

trueISW ​

trueISW: ImmediateStopWatch

Methods ​

start() ​

start(): void

Starts the process of watching the property for changes between true and false. It sets up the necessary watchers and a timeout if specified.

Returns ​

void

stop() ​

stop(): void

Stops all watchers and the timeout, cleaning up resources.

Returns ​

void


AwaitNotError ​

The error thrown when an AwaitNot operation times out.

Extends ​

  • Error

Constructors ​

Constructor ​

new AwaitNotError(message, code): AwaitNotError

Parameters ​
message ​

any

code ​

any

Returns ​

AwaitNotError

Overrides ​

Error.constructor

Properties ​

code ​

code: any

The error code.

name ​

name: string

The error name.

Inherited from ​

Error.name


AwaitTimeout ​

A utility class for managing a promise that resolves or rejects based on a set timeout or an explicit stop action. This class is useful for implementing timeouts in asynchronous operations, where you might need to reject a promise if an operation takes too long or cancel the timeout based on certain conditions.

Constructors ​

Constructor ​

new AwaitTimeout(options): AwaitTimeout

Creates an instance of AwaitTimeout with a specified timeout duration.

Parameters ​
options ​

The options for the AwaitTimeout.

timeout? ​

number = 1000

The timeout in milliseconds.

Returns ​

AwaitTimeout

Properties ​

cancelledError ​

cancelledError: AwaitTimeoutError

promise ​

promise: Promise<any>

reject ​

reject: (reason?) => void

Parameters ​
reason? ​

any

Returns ​

void

resolve ​

resolve: (value) => void

Parameters ​
value ​

any

Returns ​

void

timeout ​

timeout: number

timeoutId ​

timeoutId: number

Methods ​

start() ​

start(): void

Starts the timeout process. If the timeout duration is reached without being stopped, the promise resolves.

Returns ​

void

stop() ​

stop(): void

Stops the timeout if it is active, rejecting the promise with a "Cancelled" error. Clears all pending actions.

Returns ​

void


AwaitTimeoutError ​

The error thrown when an AwaitTimeout operation times out.

Extends ​

  • Error

Constructors ​

Constructor ​

new AwaitTimeoutError(message, code): AwaitTimeoutError

Parameters ​
message ​

any

code ​

any

Returns ​

AwaitTimeoutError

Overrides ​

Error.constructor

Properties ​

code ​

code: any

The error code.

name ​

name: string

Inherited from ​

Error.name


ImmediateStopWatch ​

Provides a mechanism for immediately starting and potentially stopping a Vue.js watcher during its first invocation. This is useful when the need arises to terminate the watch based on conditions encountered during the initial execution of the watch function.

Constructors ​

Constructor ​

new ImmediateStopWatch(): ImmediateStopWatch

Returns ​

ImmediateStopWatch

Properties ​

stopWatch ​

stopWatch: WatchHandle

Methods ​

start() ​

start(watchSources, watchFunc, watchFuncArgs?, watchOptions?): void

Starts the watch.

Parameters ​
watchSources ​

WatchSource<any> | WatchSource<any>[]

The source(s) to watch.

watchFunc ​

WatchCallback<any, any>

The callback to execute when the source changes.

watchFuncArgs? ​

any[] = []

Optional arguments to pass to the watch function.

watchOptions? ​

WatchOptions<boolean> = {}

Optional watch options.

Returns ​

void

stop() ​

stop(): void

Stops the watch.

Returns ​

void

Type Aliases ​

WatchMembershipChanged ​

WatchMembershipChanged = (callback, options?) => WatchHandle

Calls back when a list layer's set of object keys changes. Registers in the effect scope active where it is called, not in the layer's own scope, so the returned handle and the surrounding scope own the watcher. Stopping the layer does not dispose it, because the layer never owned it; it only silences it, since a stopped layer publishes nothing further. Stop it through the returned handle or through the enclosing scope. The callback takes no arguments: it reports that membership moved, not what it moved to. Read the layer's collection views for that.

Type Parameters ​

Parameters ​

callback ​

() => void

Called after the layer's set of object keys changes.

options? ​

WatchOptions

Passed through to Vue's watch, so immediate, flush, and once all behave as they do there.

Returns ​

WatchHandle

Functions ​

doAwaitNot() ​

doAwaitNot(options): Promise<any>

Helper function to get the resulting promise from an AwaitNot instance.

Parameters ​

options ​

Configuration options for AwaitNot.

couldAlreadyBeFalse? ​

boolean = true

Indicates if the property could already be in the false state at initialization.

obj ​

any

The object containing the property to watch.

prop ​

string

The property name to watch within the object.

ref? ​

Ref<any, any>

A Vue ref to directly watch if provided.

timeout? ​

number = 1000

The timeout in milliseconds before the promise is rejected.

Returns ​

Promise<any>

A promise that resolves when the property toggles from true to false.


doAwaitTimeout() ​

doAwaitTimeout(timeout): Promise<any>

Helper function to get the resulting promise from an AwaitTimeout instance.

Parameters ​

timeout ​

number

The timeout in milliseconds.

Returns ​

Promise<any>

A promise that resolves after the specified timeout.