時間戳記 (Timestamp)

為 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 排程器 (Scheduler) 上操作,但也有一個變體,允許您透過將其作為參數傳入來選擇排程器。

timestamp

timestamp 方法會將發射 T 類型項目的 Observable 轉換為發射 Timestamped<T> 類型物件的 Observable,其中每個此類物件都標記有最初發射的時間。

timestamp 預設在 computation 排程器 (Scheduler) 上操作,但也有一個變體,允許您透過將其作為參數傳入來選擇排程器。

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 排程器 (Scheduler) 上操作,但也有一個變體,允許您透過將其作為參數傳入來指定排程器。

在以下每個發行版本中都能找到 timestamp

  • rx.all.js
  • rx.all.compat.js
  • rx.time.js (需要 rx.jsrx.compat.js)
  • rx.lite.js
  • rx.lite.compat.js

RxPHP 將此運算子實作為 timestamp

記錄 Observable 序列中每個值的時間戳記。

範例程式碼

//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!
    

待定