@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
12 lines • 2.33 kB
JavaScript
import { retryWhen, scan, tap, delay } from 'rxjs/operators';
export function retryWithDelay(delayTime, count = 1) {
return input => input.pipe(retryWhen(errors => errors.pipe(scan((acc, error) => ({ count: acc.count + 1, error }), {
count: 0,
error: undefined
}), tap(current => {
if (current.count > count) {
throw current.error;
}
}), delay(delayTime))));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnktd2l0aC1kZWxheS5vcGVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL3JldHJ5LXdpdGgtZGVsYXkub3BlcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdELE1BQU0sVUFBVSxjQUFjLENBQUksU0FBaUIsRUFBRSxLQUFLLEdBQUcsQ0FBQztJQUM1RCxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQ2IsS0FBSyxDQUFDLElBQUksQ0FDUixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDakIsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7UUFDdEQsS0FBSyxFQUFFLENBQUM7UUFDUixLQUFLLEVBQUUsU0FBZ0I7S0FDeEIsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNaLElBQUksT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUMxQixNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FDakIsQ0FDRixDQUNGLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyByZXRyeVdoZW4sIHNjYW4sIHRhcCwgZGVsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXRyeVdpdGhEZWxheTxUPihkZWxheVRpbWU6IG51bWJlciwgY291bnQgPSAxKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIGlucHV0ID0+XG4gICAgaW5wdXQucGlwZShcbiAgICAgIHJldHJ5V2hlbihlcnJvcnMgPT5cbiAgICAgICAgZXJyb3JzLnBpcGUoXG4gICAgICAgICAgc2NhbigoYWNjLCBlcnJvcikgPT4gKHsgY291bnQ6IGFjYy5jb3VudCArIDEsIGVycm9yIH0pLCB7XG4gICAgICAgICAgICBjb3VudDogMCxcbiAgICAgICAgICAgIGVycm9yOiB1bmRlZmluZWQgYXMgYW55XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFwKGN1cnJlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQuY291bnQgPiBjb3VudCkge1xuICAgICAgICAgICAgICB0aHJvdyBjdXJyZW50LmVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGRlbGF5KGRlbGF5VGltZSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG59XG4iXX0=