UNPKG

610 BJavaScriptView Raw
1import { AsyncIterableX } from './asynciterablex';
2export class TimeIntervalAsyncIterable extends AsyncIterableX {
3 constructor(source) {
4 super();
5 this._source = source;
6 }
7 async *[Symbol.asyncIterator]() {
8 let last = Date.now();
9 for await (let item of this._source) {
10 const now = Date.now();
11 const span = now - last;
12 last = now;
13 yield { value: item, elapsed: span };
14 }
15 }
16}
17export function timeInterval(source) {
18 return new TimeIntervalAsyncIterable(source);
19}
20
21//# sourceMappingURL=timeinterval.mjs.map