Class: ConsumerSubject<T>
A subscribable subject which derives its value from an event consumer.
Type parameters
Name |
---|
T |
Hierarchy
↳
ConsumerSubject
Implements
Properties
canInitialNotify
• Readonly
canInitialNotify: true
Whether this subscription supports initial notifications on resume.
Implementation of
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
Name | Type |
---|---|
sub | HandlerSubscription <(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
Name | Type |
---|---|
sub | HandlerSubscription <(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
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
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
Defined in
src/sdk/data/ConsumerSubject.ts:33
Methods
addSubscription
▸ addSubscription(sub
): void
Adds a subscription to this subscribable.
Parameters
Name | Type | Description |
---|---|---|
sub | HandlerSubscription <(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
Defined in
src/sdk/data/ConsumerSubject.ts:169
get
▸ get(): T
Gets this item's state.
Returns
T
This item's state.
Overrides
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
Name | Type | Description |
---|---|---|
fn | (input : T , previousVal? : M ) => M | The function to use to map to the new subscribable. |
equalityFunc? | (a : M , b : M ) => boolean | The function to use to check for equality between mapped values. Defaults to the strict equality comparison (=== ). |
Returns
The mapped subscribable.
Inherited from
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
Name | Type | Description |
---|---|---|
fn | (input : T , previousVal? : M ) => M | The function to use to map to the new subscribable. |
equalityFunc | (a : M , b : M ) => boolean | The function to use to check for equality between mapped values. |
mutateFunc | (oldVal : M , newVal : M ) => void | The function to use to change the value of the mapped subscribable. |
initialVal | M | The initial value of the mapped subscribable. |
Returns
The mapped subscribable.
Inherited from
Defined in
src/sdk/sub/AbstractSubscribable.ts:195
notify
▸ notify(): void
Notifies subscriptions that this subscribable's value has changed.
Returns
void
Inherited from
Defined in
src/sdk/sub/AbstractSubscribable.ts:80
notifySubscription
▸ notifySubscription(sub
): void
Notifies a subscription of this subscribable's current state.
Parameters
Name | Type | Description |
---|---|---|
sub | HandlerSubscription <(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
Name | Type | Description |
---|---|---|
sub | HandlerSubscription <(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
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
Name | Type | Description |
---|---|---|
to | MutableSubscribable <any , T > | The mutable subscribable to which to pipe this subscribable's state. |
paused? | boolean | Whether the new subscription should be initialized as paused. Defaults to false . |
Returns
The new subscription.
Inherited from
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
Name | Type | Description |
---|---|---|
to | MutableSubscribable <any , M > | The mutable subscribable to which to pipe this subscribable's mapped state. |
map | (fromVal : T , toVal : M ) => M | The function to use to transform inputs. |
paused? | boolean | Whether the new subscription should be initialized as paused. Defaults to false . |
Returns
The new subscription.
Inherited from
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
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
Name | Type | Description |
---|---|---|
consumer | null | 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
Name | Type | Default value | Description |
---|---|---|---|
handler | (v : T ) => void | undefined | A function which is called when this subscribable's state changes. |
initialNotify | boolean | false | Whether 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. |
paused | boolean | false | Whether the new subscription should be initialized as paused. Defaults to false . |
Returns
The new subscription.
Inherited from
Defined in
src/sdk/sub/AbstractSubscribable.ts:50
unsub
▸ unsub(handler
): void
Unsubscribes a callback function from this subscribable.
Parameters
Name | Type | Description |
---|---|---|
handler | (v : T ) => void | The 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
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
Name | Type | Description |
---|---|---|
a | any | The first value. |
b | any | The 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
Name | Type | Description |
---|---|---|
consumer | null | 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. |
initialVal | T | The new subject's initial value. |
equalityFunc? | (a : T , b : T ) => boolean | The function to use to check for equality between values. Defaults to the strict equality comparison (=== ). |
Returns
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
Name | Type | Description |
---|---|---|
consumer | null | 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. |
initialVal | T | The new subject's initial value. |
equalityFunc | (a : T , b : T ) => boolean | The function to use to check for equality between values. |
mutateFunc | (oldVal : T , newVal : T ) => void | The function to use to change the new subject's value. |
Returns
Defined in
src/sdk/data/ConsumerSubject.ts:79