@johngw/stream
Version:
Reactive programming tools using the WHATWG Streams API.
26 lines • 581 B
JavaScript
/**
* Continuously emits `Date` chunks until cancelled.
*
* @group Sources
* @example
* ```
* interval(1_000)
*
* ------<Date>------<Date>------
* ```
*/
export function interval(ms, queuingStrategy) {
let timer;
return new ReadableStream({
start(controller) {
timer = setInterval(() => {
if (controller.desiredSize)
controller.enqueue(new Date());
}, ms);
},
cancel() {
clearInterval(timer);
},
}, queuingStrategy);
}
//# sourceMappingURL=interval.js.map