Nutella Pancake Machine

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

    7.0.0 • 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 similarly to interval except that it doubles the delay between emissions every time.

    name type attribute 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 attribute 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

    18,629

    Version

    7.0.0

    License

    MIT

    Unpacked Size

    82.5 kB

    Total Files

    51

    Last publish

    Collaborators

    • alex.okrushko