Rx.Observable.prototype.timeout(dueTime, [other], [scheduler])
Rx.Observable.prototype.timeout([firstTimeout], timeoutDurationSelector, [other])
Returns the source observable sequence or the other observable sequence if dueTime elapses.
--OR--
Returns the source observable sequence, switching to the other observable sequence if a timeout is signaled.
Arguments
If using a relative or absolute time:
dueTime(Date | Number): Absolute (specified as a Date object) or relative time (specified as an integer denoting milliseconds) when a timeout occurs.[other](Observable|Promise|Error): Observable sequence or Promise to return in case of a timeout. If a string is specified, then an error will be thrown with the given error message. If not specified, a timeout error throwing sequence will be used.[scheduler](Scheduler): Scheduler to run the timeout timers on. If not specified, the default scheduler is used.
If using a timeout duration selector:
[firstTimeout](Observable): Observable sequence that represents the timeout for the first element. If not provided, this defaults toRx.Observable.never().timeoutDurationSelector(Function): Selector to retrieve an observable sequence that represents the timeout between the current element and the next element.[other](Scheduler):Sequence to return in case of a timeout. If not provided, this is set toObservable.throw
Returns
(Observable): An observable sequence with time interval information on values.
Example
/* With no other */
var source = Rx.Observable
  .just(42)
  .delay(5000)
  .timeout(200);
var subscription = source.subscribe(
  function (x) {
    console.log('Next: %s', x);
  },
  function (err) {
    console.log('Error: %s', err);
  },
  function () {
    console.log('Completed');
  });
// => Error: Error: Timeout
/* With message */
var source = Rx.Observable
  .just(42)
  .delay(5000)
  .timeout(200, new Error('Timeout has occurred.'));
var subscription = source.subscribe(
  function (x) {
    console.log('Next: %s', x);
  },
  function (err) {
    console.log('Error: %s', err);
  },
  function () {
    console.log('Completed');
  });
// => Error: Error: Timeout has occurred.
/* With an observable */
var source = Rx.Observable
  .just(42)
  .delay(5000)
  .timeout(200, Rx.Observable.empty());
var subscription = source.subscribe(
  function (x) {
    console.log('Next: %s', x);
  },
  function (err) {
    console.log('Error: %s', err);
  },
  function () {
    console.log('Completed');
  });
// => Completed
/* With a Promise */
var source = Rx.Observable
  .just(42)
  .delay(5000)
  .timeout(200, Promise.resolve(42));
var subscription = source.subscribe(
  function (x) {
    console.log('Next: %s', x);
  },
  function (err) {
    console.log('Error: %s', err);
  },
  function () {
    console.log('Completed');
  });
// => Next: 42
// => Completed
/* without a first timeout */
var array = [
  200,
  300,
  350,
  400
];
var source = Rx.Observable
  .for(array, function (x) { return Rx.Observable.timer(x); })
  .map(function (x, i) { return i; })
  .timeout(function (x) { return Rx.Observable.timer(400); });
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
// => Error: Error: Timeout
/* With no other */
var array = [
  200,
  300,
  350,
  400
];
var source = Rx.Observable
  .for(array, function (x) { return Rx.Observable.timer(x); })
  .map(function (x, i) { return i; })
  .timeout(
    Rx.Observable.timer(250),
    function (x) { return Rx.Observable.timer(400); }
  );
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
// => Error: Error: Timeout
/* With other */
var array = [
  200,
  300,
  350,
  400
];
var source = Rx.Observable
  .for(array, function (x) { return Rx.Observable.timer(x); })
  .map(function (x, i) { return i; })
  .timeout(
    Rx.Observable.timer(250),
    function (x) { return Rx.Observable.timer(400); },
    Rx.Observable.just(42)
  );
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
// => Next: 42
// => Completed
Location
File:
Dist:
Prerequisites:
NPM Packages:
NuGet Packages:
Unit Tests: