Skip to main content

Class: ConsumerSubject<T>

A subscribable subject which derives its value from an event consumer.

Type parameters

Name
T

Hierarchy

Implements

Properties

canInitialNotify

Readonly canInitialNotify: true

Whether this subscription supports initial notifications on resume.

Implementation of

Subscription.canInitialNotify

Defined in

src/sdk/data/ConsumerSubject.ts:10


initialNotifyFunc

Protected Readonly initialNotifyFunc: (sub: HandlerSubscription<(v: T) => void>) => void

A function which sends initial notifications to subscriptions.

Type declaration

▸ (sub): void

A function which sends initial notifications to subscriptions.

Parameters
NameType
subHandlerSubscription<(v: T) => void>
Returns

void

Inherited from

AbstractSubscribable.initialNotifyFunc

Defined in

src/sdk/sub/AbstractSubscribable.ts:26


isSubscribable

Readonly isSubscribable: true

Flags this object as a Subscribable.

Inherited from

AbstractSubscribable.isSubscribable

Defined in

src/sdk/sub/AbstractSubscribable.ts:10


notifyDepth

Protected notifyDepth: number = 0

Inherited from

AbstractSubscribable.notifyDepth

Defined in

src/sdk/sub/AbstractSubscribable.ts:23


onSubDestroyedFunc

Protected Readonly onSubDestroyedFunc: (sub: HandlerSubscription<(v: T) => void>) => void

A function which responds to when a subscription to this subscribable is destroyed.

Type declaration

▸ (sub): void

A function which responds to when a subscription to this subscribable is destroyed.

Parameters
NameType
subHandlerSubscription<(v: T) => void>
Returns

void

Inherited from

AbstractSubscribable.onSubDestroyedFunc

Defined in

src/sdk/sub/AbstractSubscribable.ts:29


singletonSub

Protected Optional singletonSub: HandlerSubscription<(v: T) => void>

Inherited from

AbstractSubscribable.singletonSub

Defined in

src/sdk/sub/AbstractSubscribable.ts:20


subs

Protected Optional subs: HandlerSubscription<(v: T) => void>[]

Inherited from

AbstractSubscribable.subs

Defined in

src/sdk/sub/AbstractSubscribable.ts:22

Accessors

isAlive

get isAlive(): boolean

Whether this subject is alive. While alive, this subject will update its value from its event consumer unless it is paused. Once dead, this subject will no longer update its value and cannot be resumed again.

Returns

boolean

Implementation of

Subscription.isAlive

Defined in

src/sdk/data/ConsumerSubject.ts:23


isPaused

get isPaused(): boolean

Whether event consumption is currently paused for this subject. While paused, this subject's value will not update.

Returns

boolean

Implementation of

Subscription.isPaused

Defined in

src/sdk/data/ConsumerSubject.ts:33

Methods

addSubscription

addSubscription(sub): void

Adds a subscription to this subscribable.

Parameters

NameTypeDescription
subHandlerSubscription<(v: T) => void>The subscription to add.

Returns

void

Inherited from

AbstractSubscribable.addSubscription

Defined in

src/sdk/sub/AbstractSubscribable.ts:35


destroy

destroy(): void

Destroys this subject. Once destroyed, it will no longer consume events to update its value.

Returns

void

Implementation of

Subscription.destroy

Defined in

src/sdk/data/ConsumerSubject.ts:169


get

get(): T

Gets this item's state.

Returns

T

This item's state.

Overrides

AbstractSubscribable.get

Defined in

src/sdk/data/ConsumerSubject.ts:162


map

map<M>(fn, equalityFunc?): MappedSubscribable<M>

Maps this subscribable to a new subscribable.

Type parameters

Name
M

Parameters

NameTypeDescription
fn(input: T, previousVal?: M) => MThe function to use to map to the new subscribable.
equalityFunc?(a: M, b: M) => booleanThe function to use to check for equality between mapped values. Defaults to the strict equality comparison (===).

Returns

MappedSubscribable<M>

The mapped subscribable.

Inherited from

AbstractSubscribable.map

Defined in

src/sdk/sub/AbstractSubscribable.ts:186

map<M>(fn, equalityFunc, mutateFunc, initialVal): MappedSubscribable<M>

Maps this subscribable to a new subscribable with a persistent, cached value which is mutated when it changes.

Type parameters

Name
M

Parameters

NameTypeDescription
fn(input: T, previousVal?: M) => MThe function to use to map to the new subscribable.
equalityFunc(a: M, b: M) => booleanThe function to use to check for equality between mapped values.
mutateFunc(oldVal: M, newVal: M) => voidThe function to use to change the value of the mapped subscribable.
initialValMThe initial value of the mapped subscribable.

Returns

MappedSubscribable<M>

The mapped subscribable.

Inherited from

AbstractSubscribable.map

Defined in

src/sdk/sub/AbstractSubscribable.ts:195


notify

notify(): void

Notifies subscriptions that this subscribable's value has changed.

Returns

void

Inherited from

AbstractSubscribable.notify

Defined in

src/sdk/sub/AbstractSubscribable.ts:80


notifySubscription

notifySubscription(sub): void

Notifies a subscription of this subscribable's current state.

Parameters

NameTypeDescription
subHandlerSubscription<(v: T) => void>The subscription to notify.

Returns

void

Inherited from

AbstractSubscribable.notifySubscription

Defined in

src/sdk/sub/AbstractSubscribable.ts:156


onSubDestroyed

onSubDestroyed(sub): void

Responds to when a subscription to this subscribable is destroyed.

Parameters

NameTypeDescription
subHandlerSubscription<(v: T) => void>The destroyed subscription.

Returns

void

Inherited from

AbstractSubscribable.onSubDestroyed

Defined in

src/sdk/sub/AbstractSubscribable.ts:164


pause

pause(): this

Pauses consuming events for this subject. Once paused, this subject's value will not be updated.

Returns

this

This subject, after it has been paused.

Implementation of

Subscription.pause

Defined in

src/sdk/data/ConsumerSubject.ts:131


pipe

pipe(to, paused?): Subscription

Subscribes to and pipes this subscribable's state to a mutable subscribable. Whenever an update of this subscribable's state is received through the subscription, it will be used as an input to change the other subscribable's state.

Parameters

NameTypeDescription
toMutableSubscribable<any, T>The mutable subscribable to which to pipe this subscribable's state.
paused?booleanWhether the new subscription should be initialized as paused. Defaults to false.

Returns

Subscription

The new subscription.

Inherited from

AbstractSubscribable.pipe

Defined in

src/sdk/sub/AbstractSubscribable.ts:219

pipe<M>(to, map, paused?): Subscription

Subscribes to this subscribable's state and pipes a mapped version to a mutable subscribable. Whenever an update of this subscribable's state is received through the subscription, it will be transformed by the specified mapping function, and the transformed state will be used as an input to change the other subscribable's state.

Type parameters

Name
M

Parameters

NameTypeDescription
toMutableSubscribable<any, M>The mutable subscribable to which to pipe this subscribable's mapped state.
map(fromVal: T, toVal: M) => MThe function to use to transform inputs.
paused?booleanWhether the new subscription should be initialized as paused. Defaults to false.

Returns

Subscription

The new subscription.

Inherited from

AbstractSubscribable.pipe

Defined in

src/sdk/sub/AbstractSubscribable.ts:229


resume

resume(): this

Resumes consuming events for this subject. Once resumed, this subject's value will be updated from consumed events. When this subject is resumed, it immediately updates its value from its event consumer, if one exists.

Any initialNotify argument passed to this method is ignored. This subject is always immediately notified of its event consumer's value when resumed.

Returns

this

This subject, after it has been resumed.

Implementation of

Subscription.resume

Defined in

src/sdk/data/ConsumerSubject.ts:150


setConsumer

setConsumer(consumer): this

Sets the consumer from which this subject derives its value. If the consumer is null, this subject's value will not be updated until a non-null consumer is set.

Parameters

NameTypeDescription
consumernull | Consumer<T>An event consumer.

Returns

this

This subject, after its consumer has been set.

Defined in

src/sdk/data/ConsumerSubject.ts:116


sub

sub(handler, initialNotify?, paused?): Subscription

Subscribes to changes in this subscribable's state.

Parameters

NameTypeDefault valueDescription
handler(v: T) => voidundefinedA function which is called when this subscribable's state changes.
initialNotifybooleanfalseWhether to immediately invoke the callback function with this subscribable's current state. Defaults to false. This argument is ignored if the subscription is initialized as paused.
pausedbooleanfalseWhether the new subscription should be initialized as paused. Defaults to false.

Returns

Subscription

The new subscription.

Inherited from

AbstractSubscribable.sub

Defined in

src/sdk/sub/AbstractSubscribable.ts:50


unsub

unsub(handler): void

Unsubscribes a callback function from this subscribable.

Parameters

NameTypeDescription
handler(v: T) => voidThe function to unsubscribe.

Returns

void

Deprecated

This method has been deprecated in favor of using the Subscription object returned by .sub() to manage subscriptions.

Inherited from

AbstractSubscribable.unsub

Defined in

src/sdk/sub/AbstractSubscribable.ts:65


DEFAULT_EQUALITY_FUNC

DEFAULT_EQUALITY_FUNC(a, b): boolean

Checks if two values are equal using the strict equality operator.

Parameters

NameTypeDescription
aanyThe first value.
banyThe second value.

Returns

boolean

whether a and b are equal.

Inherited from

AbstractSubscribable.DEFAULT_EQUALITY_FUNC

Defined in

src/sdk/sub/AbstractSubscribable.ts:18


create

create<T>(consumer, initialVal, equalityFunc?): ConsumerSubject<T>

Creates a new instance of ConsumerSubject.

Type parameters

Name
T

Parameters

NameTypeDescription
consumernull | Consumer<T>The consumer from which the new subject obtains its value. If null, the new subject's value will not be updated until the subject's consumer is set to a non-null value.
initialValTThe new subject's initial value.
equalityFunc?(a: T, b: T) => booleanThe function to use to check for equality between values. Defaults to the strict equality comparison (===).

Returns

ConsumerSubject<T>

Defined in

src/sdk/data/ConsumerSubject.ts:66

create<T>(consumer, initialVal, equalityFunc, mutateFunc): ConsumerSubject<T>

Creates a new instance of ConsumerSubject.

Type parameters

Name
T

Parameters

NameTypeDescription
consumernull | Consumer<T>The consumer from which the new subject obtains its value. If null, the new subject's value will not be updated until the subject's consumer is set to a non-null value.
initialValTThe new subject's initial value.
equalityFunc(a: T, b: T) => booleanThe function to use to check for equality between values.
mutateFunc(oldVal: T, newVal: T) => voidThe function to use to change the new subject's value.

Returns

ConsumerSubject<T>

Defined in

src/sdk/data/ConsumerSubject.ts:79