Маркировка времени
прикрепить отметку времени к каждому элементу, испускаемому Observable, указывая, когда он был испущен
Оператор Timestamp прикрепляет отметку времени к каждому элементу, испускаемому исходным Observable, перед повторным испусканием этого элемента в собственной последовательности. Отметка времени указывает, во сколько время был испущен элемент.
См. также
Информация, специфичная для языка
RxGroovy timestamp
Метод timestamp преобразует Observable, испускающий элементы типа T, в Observable, испускающий объекты типа Timestamped<T>, где каждый такой объект помечен временем, в которое он был первоначально испущен.
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 по умолчанию работает с immediate Scheduler, но также есть вариант, позволяющий выбрать Scheduler, передав его в качестве параметра.
- Javadoc:
timestamp() - Javadoc:
timestamp(Scheduler)
RxJava 1․x timestamp
Метод timestamp преобразует Observable, испускающий элементы типа T, в Observable, испускающий объекты типа Timestamped<T>, где каждый такой объект помечен временем, в которое он был первоначально испущен.
Метод timestamp по умолчанию работает с immediate Scheduler, но также есть вариант, позволяющий выбрать Scheduler, передав его в качестве параметра.
- Javadoc:
timestamp() - Javadoc:
timestamp(Scheduler)
RxJS 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, но также есть вариант, позволяющий указать Scheduler, передав его в качестве параметра.
Метод timestamp доступен в следующих дистрибутивах:
rx.all.jsrx.all.compat.js-
rx.time.js(требуетсяrx.jsилиrx.compat.js) rx.lite.jsrx.lite.compat.js
RxPHP timestamp
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!
© ReactiveX contributors
Licensed under the Apache License 2.0.
http://reactivex.io/documentation/operators/timestamp.html