es6/operator/timestamp.js
import { Subscriber } from '../Subscriber';
import { async } from '../scheduler/async';
/**
* @param scheduler
* @return {Observable<Timestamp<any>>|WebSocketSubject<T>|Observable<T>}
* @method timestamp
* @owner Observable
*/
export function timestamp(scheduler) {
if (scheduler === void 0) { scheduler = async; }
return this.lift(new TimestampOperator(scheduler));
}
export var Timestamp = (function () {
function Timestamp(value, timestamp) {
this.value = value;
this.timestamp = timestamp;
}
return Timestamp;
}());
;
var TimestampOperator = (function () {
function TimestampOperator(scheduler) {
this.scheduler = scheduler;
}
TimestampOperator.prototype.call = function (observer, source) {
return source._subscribe(new TimestampSubscriber(observer, this.scheduler));
};
return TimestampOperator;
}());
var TimestampSubscriber = (function (_super) {
__extends(TimestampSubscriber, _super);
function TimestampSubscriber(destination, scheduler) {
_super.call(this, destination);
this.scheduler = scheduler;
}
TimestampSubscriber.prototype._next = function (value) {
var now = this.scheduler.now();
this.destination.next(new Timestamp(value, now));
};
return TimestampSubscriber;
}(Subscriber));
//# sourceMappingURL=timestamp.js.map