Nondeterministic Polynomial Munchies
Wondering what’s next for npm?Check out our public roadmap! »

backoff-rxjs
TypeScript icon, indicating that this package has built-in type declarations

6.5.7 • Public • Published

backoff-rxjs

A collection of helpful RxJS operators to deal with backoff strategies (like exponential backoff) Angular-in-Depth article about this library is at https://indepth.dev/power-of-rxjs-when-using-exponential-backoff/

intervalBackoff

Basic interval backoff

intervalBackoff works similiarly to interval except that it doubles the delay between emissions every time.

name type attirbute description
config number | IntervalBackoffConfig required Can take number as initial interval or a config with initial interval, optional max Interval and optional backoff delay function (exponential by default)

interval is especially useful for periodic polls that are reset whenever user activity is detected:

fromEvent(document, 'mousemove').pipe(
  // There could be many mousemoves, we'd want to sample only
  // with certain frequency
  sampleTime(LOAD_INTERVAL_MS),
 
  // Start immediately
  startWith(null),
 
  // Resetting exponential interval
  switchMapTo(
    intervalBackoff({
      initialInterval: LOAD_INTERVAL_MS,
      maxInterval: MAX_INTERVAL_MS
    })
  )
);

retryBackoff

Retry Backoff Exponential Image

name type attirbute description
config number | RetryBackoffConfig required Can take number as initial interval or a config with initial interval, optional max Interval, optional max number of retry attempts, optional function to cancel reties and optional backoff delay function (exponential by default)
 this.service.callBackend().pipe(
   retryBackoff({
     initialInterval: 100,
     maxRetries: 12,
     // 👇 resets retries count and delays between them to init values
     resetOnSuccess: true
    })
 )

Install

npm i backoff-rxjs

DownloadsWeekly Downloads

9,143

Version

6.5.7

License

MIT

Unpacked Size

28.4 kB

Total Files

21

Last publish

Collaborators

  • avatar