Need help with backoff-rxjs?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

alex-okrushko
169 Stars 10 Forks MIT License 48 Commits 6 Opened issues

Description

A collection of helpful RxJS operators to deal with backoff strategies (like exponential backoff)

Services available

!
?

Need anything else?

Contributors list

# 13,153
TypeScr...
HTML
vscode
Angular
42 commits
# 22,895
ionic
golang
google-...
Dart
1 commit
# 210,476
Neovim
coc
C++
bayesia...
1 commit

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
    })
 )

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.