js-uploader
Version:
A JavaScript library for file upload
17 lines (15 loc) • 490 B
text/typescript
import { delay, retryWhen, scan } from 'rxjs/operators'
import type { MonoTypeOperatorFunction } from 'rxjs/internal/types'
export function retryWithDelay<T>(retryCount: number = -1, delayMs: number = 0): MonoTypeOperatorFunction<T> {
return retryWhen((err$) =>
err$.pipe(
scan((errCount: number, err: Error) => {
if (retryCount > -1 && errCount >= retryCount) {
throw err
}
return errCount + 1
}, 0),
delay(delayMs),
),
)
}