Search
Loading...
Skip to content

Function: _mergeSources

function _mergeSources(...sources): (listener) => _Unsubscribe;

Merges multiple event sources into a single source that emits when any source emits.

This is useful for tracking properties that depend on multiple independent events.

Parameters#

ParameterTypeDescription
sources(listener) => _Unsubscribe[]Event source functions to merge

Returns#

A merged source that emits when any source emits

(listener): _Unsubscribe;

Parameters#

ParameterType
listener_Listener<void>

Returns#

_Unsubscribe

Example#

const zoomChanged = engine.scene.onZoomLevelChanged;
const dpiChanged = engine.scene.onDpiChanged;
const zoomOrDpiChanged = mergeSources(zoomChanged, dpiChanged);
// Now use with createTrackedProperty
const normalizedZoom = createTrackedProperty(
() => engine.scene.getZoomLevel() / getDpi(),
(value) => engine.scene.setZoomLevel(value * getDpi()),
zoomOrDpiChanged
);