Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved.
--OR--
Time shifts the observable sequence based on a subscription delay and a delay selector function for each element.
For delays with an absolute or relative time:
dueTime
(Date | Number): Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) by which to shift the observable sequence.[scheduler]
(Scheduler
): Scheduler to run the delay timers on. If not specified, the default scheduler is used.
For delays with a delay selector function:
[subscriptionDelay]
(Observable
): Sequence indicating the delay for the subscription to the source.delayDurationSelector
(Function
): Selector function to retrieve a sequence indicating the delay for each given element.
(Observable
): Time-shifted sequence.
/* Using an absolute time to delay by a second */
var source = Rx.Observable.range(0, 3)
.delay(new Date(Date.now() + 1000));
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed');
});
// => Next: 0
// => Next: 1
// => Next: 2
// => Completed
/* Using an relative time to delay by a second */
var source = Rx.Observable.range(0, 3)
.delay(1000);
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed');
});
// => Next: 0
// => Next: 1
// => Next: 2
// => Completed
/* With subscriptionDelay */
var source = Rx.Observable
.range(0, 3)
.delay(
Rx.Observable.timer(300),
function (x) { return Rx.Observable.timer(x * 400); }
)
.timeInterval()
.map(function (x) { return x.value + ':' + x.interval; });
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed');
});
// => Next: 0:300
// => Next: 1:400
// => Next: 2:400
// => Completed
/* Without subscriptionDelay */
var source = Rx.Observable
.range(0, 3)
.delay(function (x) { return Rx.Observable.timer(x * 400); })
.timeInterval()
.map(function (x) { return x.value + ':' + x.interval; });
var subscription = source.subscribe(
function (x) {
console.log('Next: %s', x);
},
function (err) {
console.log('Error: %s', err);
},
function () {
console.log('Completed');
});
// => Next: 0:0
// => Next: 1:400
// => Next: 2:400
// => Completed
File:
Dist:
Prerequisites:
rx
.time.jsrx.lite.js
| rx.lite.compat.js
NPM Packages:
NuGet Packages:
Unit Tests: