UNPKG

@johngw/stream

Version:

Reactive programming tools using the WHATWG Streams API.

30 lines (27 loc) 550 B
/** * Continuously emits `Date` chunks until cancelled. * * @group Sources * @example * ``` * interval(1_000) * * ------<Date>------<Date>------ * ``` */ export function interval(ms: number, queuingStrategy?: QueuingStrategy<Date>) { let timer: number return new ReadableStream<Date>( { start(controller) { timer = setInterval(() => { if (controller.desiredSize) controller.enqueue(new Date()) }, ms) }, cancel() { clearInterval(timer) }, }, queuingStrategy ) }