UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

34 lines (33 loc) 1.19 kB
/** * The allowed options object for `exponentialBackoffDelayCalculator` */ export interface DelayCalculator { jitter: boolean; jitterFactor: number; backOffFactor: number; baseWaitTime: number; } /** * Calculate retry timing * * `jitter`: "Slight irregular movement, variation, or unsteadiness, * especially in an electrical signal or electronic device" * * @param options - The options object * - `jitter`: If the duration should be affected by a jitter effect * - `jitterFactor`: How widely the jitter effect should vary * - `backOffFactor`: How quickly the duration should back off * - `baseWaitTime`: The base time when determining sleep duration * @returns The duration to sleep * * @example * const calcOpts: DelayCalculator = { * jitter: true, * jitterFactor: .3, * backOffFactor: 2, * baseWaitTime: 100, * } * // Create a retrier with a custom backoff * retryWithBackoff({retries: 3, delayCalculator: exponentialBackoffDelayCalculator(calcOpts)}) */ export declare const exponentialBackoffDelayCalculator: ({ jitter, jitterFactor, backOffFactor, baseWaitTime, }: Partial<DelayCalculator>) => (attempt: number) => number;