push(data) — if the throttle window is closed (active timer exists):
the value is saved as pending but not emitted
If the window is open (no active timer) — the value is emitted
immediately (leading edge), a timer for interval ms is started
On interval expiry — if there is a pending value, it is emitted
(trailing edge) and a new window is started
subscribe(handler) — subscribes to notifications
destroy() — clears the timer, unsubscribes subscribers, clears state
Leading + trailing: the first push passes immediately, the last one in the window —
after the interval ends. This guarantees that no value is lost
and the emission rate is limited to interval.
Configuration (ThrottleTransferConfig):
interval: number — minimum interval between emissions (ms)
Reactive channel with throttled emission to subscribers on push().
Capabilities: isInput, isOutput, isPushable, isSubscribable
Mechanics:
Leading + trailing: the first push passes immediately, the last one in the window — after the interval ends. This guarantees that no value is lost and the emission rate is limited to interval.
Configuration (ThrottleTransferConfig):
Use cases: