Skip to main content

Class: Subscribable<Values>

A class that allows you to subscribe to changes in a set of values.

Example

const subscribable = new Subscribable({ foo: "bar" });
const unsubscribe = subscribable.subscribe("foo", v => console.log(v));
subscribable.set("foo", "baz"); // "baz"
unsubscribe();
subscribable.set("foo", "qux"); // nothing

Type parameters​

NameType
Valuesextends object = any

Table of contents​

Constructors​

Properties​

Accessors​

Methods​

Constructors​

constructor​

• new Subscribable<Values>(_values)

Type parameters​

NameType
Valuesextends object = any

Parameters​

NameTypeDescription
_valuesValuesThe values to subscribe to

Properties​

_listeners​

• Private _listeners: { [K in string | number | symbol]?: Function[] } = {}

Listeners for each value


_values​

• Private _values: Values

The values to subscribe to

Accessors​

_subscribableValues​

• get _subscribableValues(): Values

Gets all values

Returns​

Values

Methods​

_unsubscribe​

▸ Private _unsubscribe<K>(key, listener): void

Unsubscribes from a value

Type parameters​

NameType
Kextends string | number | symbol

Parameters​

NameType
keyK
listener(v: Values[K]) => void

Returns​

void


get​

▸ get<K>(key): Values[K]

Gets a value

Type parameters​

NameType
Kextends string | number | symbol

Parameters​

NameType
keyK

Returns​

Values[K]


set​

▸ Protected set<K>(key, v): Values[K]

Sets a value and notifies all listeners

Type parameters​

NameType
Kextends string | number | symbol

Parameters​

NameType
keyK
vValues[K]

Returns​

Values[K]


subscribe​

▸ subscribe<K>(key, listener): () => void

Subscribes to a value

Type parameters​

NameType
Kextends string | number | symbol

Parameters​

NameType
keyK
listener(v: Values[K]) => void

Returns​

fn

▸ (): void

Subscribes to a value

Returns​

void