Timestamp 操作符在重新发出源 Observable 中的每个项目之前,会将其时间戳附加到每个项目。时间戳指示该项目是在何时发出的。
待定
待定
timestamp
方法将发出类型为 T 的项目的 Observable 转换为发出类型为 Timestamped<T>
的对象的 Observable,其中每个这样的对象都带有其最初发出时间的标记。
def myObservable = Observable.range(1, 1000000).filter({ 0 == (it % 200000) }); myObservable.timestamp().subscribe( { println(it.toString()); }, // onNext { println("Error: " + it.getMessage()); }, // onError { println("Sequence complete"); } // onCompleted );
Timestamped(timestampMillis = 1369252582698, value = 200000) Timestamped(timestampMillis = 1369252582740, value = 400000) Timestamped(timestampMillis = 1369252582782, value = 600000) Timestamped(timestampMillis = 1369252582823, value = 800000) Timestamped(timestampMillis = 1369252582864, value = 1000000) Sequence complete
timestamp
默认情况下在 computation
调度器 上运行,但也有一个变体,允许您通过将调度器作为参数传入来选择调度器。
timestamp()
timestamp(Scheduler)
timestamp
方法将发出类型为 T 的项目的 Observable 转换为发出类型为 Timestamped<T>
的对象的 Observable,其中每个这样的对象都带有其最初发出时间的标记。
timestamp
默认情况下在 computation
调度器 上运行,但也有一个变体,允许您通过将调度器作为参数传入来选择调度器。
timestamp()
timestamp(Scheduler)
timestamp
方法在将项目作为其自身序列的一部分发出之前,将时间戳附加到由源 Observable 发出的每个项目。时间戳指示该项目是由源 Observable 在何时发出的。
var source = Rx.Observable.timer(0, 1000) .timestamp() .map(function (x) { return x.value + ':' + x.timestamp; }) .take(5); var subscription = source.subscribe( function (x) { console.log('Next: ' + x); }, function (err) { console.log('Error: ' + err); }, function () { console.log('Completed'); });
Next: 0:1378690776351 Next: 1:1378690777313 Next: 2:1378690778316 Next: 3:1378690779317 Next: 4:1378690780319 Completed
timestamp
默认情况下在 timeout
调度器 上运行,但也有一个变体,允许您通过将调度器作为参数传入来指定调度器。
timestamp
存在于以下每个发行版中
rx.all.js
rx.all.compat.js
rx.time.js
(需要 rx.js
或 rx.compat.js
)rx.lite.js
rx.lite.compat.js
RxPHP 将此操作符实现为 timestamp
。
记录可观察序列中每个值的 timestamp。
//from https://github.com/ReactiveX/RxPHP/blob/master/demo/timestamp/timestamp.php $source = \Rx\Observable::interval(1000) ->timestamp() ->map(function (\Rx\Timestamped $x) { return $x->getValue() . ':' . $x->getTimestampMillis(); }) ->take(5); $source->subscribe($createStdoutObserver()); // Next value: 0:1460781738354 // Next value: 1:1460781739358 // Next value: 2:1460781740359 // Next value: 3:1460781741362 // Next value: 4:1460781742367 // Complete!
Next value: 0:1489535638531 Next value: 1:1489535639534 Next value: 2:1489535640532 Next value: 3:1489535641528 Next value: 4:1489535642528 Complete!
待定