You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
16 lines
672 B
16 lines
672 B
4 years ago
|
import { async } from '../scheduler/async';
|
||
|
import { scan } from './scan';
|
||
|
import { defer } from '../observable/defer';
|
||
|
import { map } from './map';
|
||
|
export function timeInterval(scheduler = async) {
|
||
|
return (source) => defer(() => {
|
||
|
return source.pipe(scan(({ current }, value) => ({ value, current: scheduler.now(), last: current }), { current: scheduler.now(), value: undefined, last: undefined }), map(({ current, last, value }) => new TimeInterval(value, current - last)));
|
||
|
});
|
||
|
}
|
||
|
export class TimeInterval {
|
||
|
constructor(value, interval) {
|
||
|
this.value = value;
|
||
|
this.interval = interval;
|
||
|
}
|
||
|
}
|
||
|
//# sourceMappingURL=timeInterval.js.map
|