41 lines
1.5 KiB
41 lines
1.5 KiB
import { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types'; |
|
/** |
|
* Attaches a timestamp to each item emitted by an observable indicating when it was emitted |
|
* |
|
* The `timestamp` operator maps the *source* observable stream to an object of type |
|
* `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value |
|
* and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By |
|
* default it uses the *async* scheduler which simply returns `Date.now()` (milliseconds since 1970/01/01 |
|
* 00:00:00:000) and therefore is of type `number`. |
|
* |
|
*  |
|
* |
|
* ## Example |
|
* |
|
* In this example there is a timestamp attached to the documents click event. |
|
* |
|
* ```ts |
|
* import { fromEvent } from 'rxjs'; |
|
* import { timestamp } from 'rxjs/operators'; |
|
* |
|
* const clickWithTimestamp = fromEvent(document, 'click').pipe( |
|
* timestamp() |
|
* ); |
|
* |
|
* // Emits data of type {value: MouseEvent, timestamp: number} |
|
* clickWithTimestamp.subscribe(data => { |
|
* console.log(data); |
|
* }); |
|
* ``` |
|
* |
|
* @param scheduler |
|
* @return {Observable<Timestamp<any>>|WebSocketSubject<T>|Observable<T>} |
|
* @method timestamp |
|
* @owner Observable |
|
*/ |
|
export declare function timestamp<T>(scheduler?: SchedulerLike): OperatorFunction<T, Timestamp<T>>; |
|
export declare class Timestamp<T> implements TimestampInterface<T> { |
|
value: T; |
|
timestamp: number; |
|
constructor(value: T, timestamp: number); |
|
}
|
|
|