Effection Logo

function on

thefrontside/effection

function on<T extends EventTarget, K extends EventList<T> | (string & {})>(target: T, name: K): Stream<EventTypeFromEventTarget<T, K>, never>

Create a Stream of events from any EventTarget.

See the guide on Streams and Subscriptions for details on how to use streams.

Examples

Example 1

import { each, on, once, spawn } from "effection";

// handle socket errors in a concurrent child task
yield* spawn(function* () {
  throw yield* once(socket, "error");
});

for (let event of yield* each(on(socket, "message"))) {
  console.log(event.data);
  yield* each.next();
}

Type Parameters

T extends EventTarget

K extends EventList<T> | string & {}

Parameters

target: T

the event target whose events will be streamed

name: K

the name of the event to stream. E.g. "click"

Return Type

Stream<EventTypeFromEventTarget<T, K>, never>

a stream that will see one item for each event