rxjs
Version:
Reactive Extensions for modern JavaScript
31 lines • 1.08 kB
JavaScript
import { async } from '../scheduler/async';
import { scan } from './scan';
import { defer } from '../observable/defer';
import { map } from './map';
export function timeInterval(scheduler) {
if (scheduler === void 0) { scheduler = async; }
return function (source) {
return defer(function () {
return source.pipe(scan(function (_a, value) {
var current = _a.current;
return ({ value: value, current: scheduler.now(), last: current });
}, {
current: scheduler.now(),
value: undefined,
last: undefined,
}), map(function (_a) {
var current = _a.current, last = _a.last, value = _a.value;
return new TimeInterval(value, current - last);
}));
});
};
}
var TimeInterval = (function () {
function TimeInterval(value, interval) {
this.value = value;
this.interval = interval;
}
return TimeInterval;
}());
export { TimeInterval };
//# sourceMappingURL=timeInterval.js.map