Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 1.08 KB

README.md

File metadata and controls

47 lines (33 loc) · 1.08 KB

RxJS Recipes

Error Handling

There are many ways of handling errors in RxJS. This will cover a number of recipes when handling errors:

  • Incremental retry with retryWhen

Incremental retry with retryWhen

This example will show how you can back off a retry for a number of seconds between tries instead of retrying them all at once.

{% if book.isPdf %}

function identity(x) { return x; }

Rx.Observable.create(o => {
      console.log('subscribing');
      o.onError(new Error('always fails'));
  }).retryWhen(attempts => {
      return Rx.Observable.range(1, 3)
        .zip(attempts, identity)
        .flatMap(i => {
          console.log('delay retry by ' + i + ' second(s)');
          return Rx.Observable.timer(i * 1000);
      });
  }).subscribe();

// => subscribing
// => delay retry by 1 second(s)
// => subscribing
// => delay retry by 2 second(s)
// => subscribing
// => delay retry by 3 second(s)
// => subscribing

{% else %}

Example

{% endif %}