Rx.Observable.prototype.catch(second | handler)

Continues an observable sequence that is terminated by an exception with the next observable sequence.

Arguments

Using another Observable:

  • second (Observable): A second observable sequence used to produce results when an error occurred in the first sequence.

Using a handler:

  • handler (Function): Exception handler function that returns an observable sequence given the error that occurred in the first sequence

Returns

(Observable): An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred.

Example

/* Using a second observable */
var source = Rx.Observable.throw(new Error()).catch(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: 42
// => Completed

/* Using a handler function */
var source = Rx.Observable.throw(new TimeoutError())
    .catch(function (e) {
      var returnValue;
      if (e instanceof TimeoutError) { return Rx.Observable.just(42); }
      return Rx.Observable.throw(e);
    });

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

Location

File:

Dist:

Prerequisites:

  • None

NPM Packages:

NuGet Packages:

Unit Tests:

results matching ""

    No results matching ""