Skip to main content

Class: ObservableImpl

Defined in: packages/core/src/event/ObservableImpl.ts:22

An Observable is a class that manages event listeners and allows distributing events to the registered listeners. It maintains a history of events and supports persistent events that are not cleared during route changes.

Remarks​

  • The Observable class relies on a Dispatcher to handle the actual event distribution.
  • It maintains a history of events, which can be limited by a maximum history length.

Extends​

Constructors​

Constructor​

new ObservableImpl(dispatcher, settings?): ObservableImpl

Defined in: packages/core/src/event/ObservableImpl.ts:40

Creates an instance of Observable.

Parameters​

dispatcher​

Dispatcher

The dispatcher responsible for managing event listeners.

settings?​

Optional settings for the Observable instance.

maxHistoryLength?​

number

Returns​

ObservableImpl

Overrides​

Observable.constructor

Properties​

_activityHistory​

protected _activityHistory: Map<string, unknown[]>

Defined in: packages/core/src/event/ObservableImpl.ts:25


_dispatcher​

protected _dispatcher: Dispatcher

Defined in: packages/core/src/event/ObservableImpl.ts:23


_observers​

protected _observers: Map<string, Map<DispatcherListener<any>, Set<unknown>>>

Defined in: packages/core/src/event/ObservableImpl.ts:24


_persistentEvents​

protected _persistentEvents: Set<string>

Defined in: packages/core/src/event/ObservableImpl.ts:26


_settings​

protected _settings: { maxHistoryLength?: number; } | undefined

Defined in: packages/core/src/event/ObservableImpl.ts:27


$dependencies​

static $dependencies: Dependencies

Defined in: packages/core/src/event/ObservableImpl.ts:29

Methods​

_handleDispatcherEvent()​

_handleDispatcherEvent(event, data): void

Defined in: packages/core/src/event/ObservableImpl.ts:160

Handles dispatcher events by updating the activity history and notifying observers. It also resets the activity history for non-persistent events on BEFORE_HANDLE_ROUTE ecvent.

Parameters​

event​

string

The name of the event being dispatched.

data​

any

The data associated with the event.

Returns​

void


clear()​

clear(): ObservableImpl

Defined in: packages/core/src/event/ObservableImpl.ts:72

Clears all persistent events, observers, and activity history from the observable.

This method will remove all stored events, registered observers, and any recorded activity history, effectively resetting the observable to its initial state.

Returns​

ObservableImpl

The instance of the Observable for chaining.

Overrides​

Observable.clear


destroy()​

destroy(): ObservableImpl

Defined in: packages/core/src/event/ObservableImpl.ts:62

Destroys the observable by clearing its internal state and removing all event listeners.

Returns​

ObservableImpl

The instance of the Observable for chaining.

Overrides​

Observable.destroy


init()​

init(): ObservableImpl

Defined in: packages/core/src/event/ObservableImpl.ts:52

Initializes the observable.

Returns​

ObservableImpl

The instance of the Observable for chaining.

Overrides​

Observable.init


registerPersistenEvent()​

registerPersistenEvent(event): ObservableImpl

Defined in: packages/core/src/event/ObservableImpl.ts:92

Parameters​

event​

string

Returns​

ObservableImpl

Deprecated​

Use the correctly spelled registerPersistentEvent method instead.

Overrides​

Observable.registerPersistenEvent


registerPersistentEvent()​

registerPersistentEvent(event): ObservableImpl

Defined in: packages/core/src/event/ObservableImpl.ts:83

Registers an event as persistent, meaning its history won't be cleared upon calling the clear method (route change).

Parameters​

event​

string

The name of the event to be registered as persistent. This can be a key from the DispatcherEventsMap or any string.

Returns​

ObservableImpl

The instance of the Observable for chaining.

Overrides​

Observable.registerPersistentEvent


subscribe()​

subscribe(event, observer, scope?): this

Defined in: packages/core/src/event/ObservableImpl.ts:104

Subscribes an observer to a specific event. When the event is dispatched, the observer will be notified and executed within the provided scope. If the event has already occurred, the observer will be immediately invoked with the historical data.

Parameters​

event​

string

The event to subscribe to.

observer​

DispatcherListener<any>

The observer function to be called when the event is dispatched.

scope?​

unknown

The scope in which the observer function should be executed. This is optional.

Returns​

this

The instance of the Observable for chaining.

Overrides​

Observable.subscribe


unsubscribe()​

unsubscribe(event, observer, scope?): this

Defined in: packages/core/src/event/ObservableImpl.ts:131

Unsubscribes an observer from a specific event.

Parameters​

event​

string

The event name or key from the DispatcherEventsMap.

observer​

DispatcherListener<any>

The observer (listener) to be unsubscribed.

scope?​

unknown

Optional scope to be used for the observer.

Returns​

this

The current instance for chaining.

Overrides​

Observable.unsubscribe