StateObservable
Represents an Observable state. It has the following properties:
- It's multicast: The subscription is shared with all the subscribers.
- It replays the last emitted value to every new subscriber.
- It doesn't propagate
complete
. - When all its subscribers unsubscribe, it cleans up everything, unsubscribing from the source and resetting the latest value.
interface StateObservable<T> extends Observable<T> {
getRefCount: () => number
getValue: (filter?: (value: T) => boolean) => T | StatePromise<T>
}
Inherits from rxjs' Observable
.
methods
getRefCount()
Gets the current number of subscribers.
function getRefCount(this: StateObservable): number
Returns
The current number of subscribers this StateObservable
has.
getValue(filter)
function getValue(
this: StateObservable,
filter?: (value: T) => boolean,
): T | StatePromise<T>
Arguments
filter
: (Optional) A function that will excludevalue
as a possible value returned by this function. Defaults to() => true
(every value is returned)
Returns
Either:
- The latest value, if this
StateObservable
has already emitted any. - A promise that will resolve the first value, if this
StateObservable
hasn't emitted any yet.
Calling this method will throw an error if this
StateObservable
doesn't have any subscription active.The promise returned by this method will reject if the observable completes without emitting any value, or if all subscribers unsubscribe before the observable emits something.
DefaultedStateObservable
A StateObservable
that was provided with a default value.
interface DefaultedStateObservable<T> extends StateObservable<T> {
getDefaultValue: () => T
getValue: (filter?: (value: T) => boolean) => T
}
Inherits from StateObservable
and rxjs' Observable
.
getDefaultValue()
Gets the default value set to this DefaultedStateObservable
function getDefaultValue(this: DefaultedStateObservable<T>): T
Returns
The default value of this DefaultedStateObservable
getValue(filter)
function getValue(this: StateObservable, filter?: (value: T) => boolean): T
Arguments
filter
: (Optional) A function that will excludevalue
as a possible value returned by this function. Defaults to() => true
(every value is returned). If the value is excluded, it will return the default value instead.
Returns
Either:
- The latest value, if this
DefaultedStateObservable
has already emitted any. - The default value, if this
DefaultedStateObservable
hasn't emitted any yet.
The getValue()
method of DefaultedStateObservable
overrides the one from StateObservable
.
This means it won't return a Promise and it won't throw errors as the original StateObservable
does.