Events

Obsidian events are used to send and receive messages within a module or from a module to another.

Usage

The Application instance provides an access to a scoped bus of events: app.events, which is automatically scoped to the namespace of the current module.

Emitting an event

To emit an event, use events.emit() as follows:

app.events.emit("my-event.path", "hello", "world", 42);

Every argument passed after the event path (here, "hello", "world", 42) will be passed to the listeners of the event.

Subscribing to an event

To subscribe to an event, you may use events.on():

app.events.on("my-event.path", handler);

You may also use events.once to subscribe to a one-time event.

Events paths

An event path is defined with an unique (in its namespace) string identifier, which may be composed by one or many parts, separated by points.

Example:

app.events.emit("ready");
app.events.emit("my-model.value-change");
app.events.emit("my-controller.scene.update");

To subscribe to an event of a different module, you have to prefix the event path with the namespace of the module (@my-module.my-event-path).

Example:

// myModule1/index.js
app.events.emit("ready");

// myModule1/someOtherFile.js
app.events.on("ready", handler); // In the same module, we can register without prefix

// myModule2/index.js
app.events.on("@my-module-1.ready", handler); // Here, we have to add the namespace

API Reference

Events

class Events()

Handle Obsidian application events.

Events.emit(eventPath, ...args)

Emit an event at a given path.

Arguments:
  • eventPath (string) – The path of the event.
  • args (*) – The arguments to pass to the handlers.
Events.on(eventPath, listener)

Subscribe to an event at a given path.

Arguments:
  • eventPath (string) – The path of the event.
  • listener (function) – The event handler.
Events.once(eventPath, listener)

Subscribe to a one-time event at a given path.

Arguments:
  • eventPath (string) – The path of the event.
  • listener (function) – The event handler.
Events.removeListener(eventPath, listener)

Unsubscribe to an event at a given path.

Arguments:
  • eventPath (string) – The path of the event.
  • listener (function) – The event handler.

Bus

class Bus()

Provides an access to an event namespace.