Appearance
@tmrw-realityos/charm / ROSEvent
Class: ROSEvent<T>
Defined in: packages/charm/src/helpers/events.ts:71
Simple, type safe, multicast events.
Leaves out the complexity of event bubbling and cancellation.
Uses a naming convention of "on" to register an event listener and "off" to remove it.
Example
typescript
class EventHost {
#currentValue = 0;
#valueChanged= new ROSEvent<(value: number) => void>();
mutateState() {
this.#currentValue = 10;
this.#valueChanged.dispatch(this.#currentValue);
}
}
// Observer
const host = new EventHost();
const offChanged = host.#valueChanged.on((value) => {
console.log("Value changed to", value);
});
function exit() {
// remove event listener
if (offChanged) offChanged();
}Type Parameters
T
T extends EventHandler
Constructors
Constructor
new ROSEvent<
T>():ROSEvent<T>
Returns
ROSEvent<T>
Accessors
dispatch
Get Signature
get dispatch(): (...
args) =>void
Defined in: packages/charm/src/helpers/events.ts:78
Internal
Returns
(...
args):void
Parameters
args
...Parameters<T>
Returns
void
length
Get Signature
get length():
number
Defined in: packages/charm/src/helpers/events.ts:73
Returns
number
Methods
on()
on(
callback):RemoveEventListener
Defined in: packages/charm/src/helpers/events.ts:98
Register an event listener.
Parameters
callback
T
Returns
RemoveEventListener
A function that will remove the event listener when called.
Parameter
callback - The function to be called when the event is dispatched.
Example
typescript
const offChanged = host.#onChanged.on((value) => {
console.log("Value changed to", value);
});