时间戳

将时间戳附加到由 Observable 发出的每个项目,指示它们是在何时发出的。

Timestamp

Timestamp 操作符在重新发出源 Observable 中的每个项目之前,会将其时间戳附加到每个项目。时间戳指示该项目是在何时发出的。

另请参阅

特定于语言的信息

待定

待定

timestamp

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 方法将发出类型为 T 的项目的 Observable 转换为发出类型为 Timestamped<T> 的对象的 Observable,其中每个这样的对象都带有其最初发出时间的标记。

timestamp 默认情况下在 computation 调度器 上运行,但也有一个变体,允许您通过将调度器作为参数传入来选择调度器。

timestamp

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.jsrx.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!
    

待定