UNPKG

@rifo/rxjs-polling

Version:
16 lines 2.53 kB
import { BehaviorSubject, concat, of } from 'rxjs'; import { delay, skip, switchMap, tap } from 'rxjs/operators'; /** * Polling when data is resolved * @param httpRequest$ any http request. * @param delayMs delay in ms * * Inspire by https://blog.strongbrew.io/rxjs-polling/ */ export function pollingOnResolved(httpRequest$, delayMs = 0) { const polling$ = new BehaviorSubject({}); const rePolling$ = of('').pipe(delay(delayMs), tap(() => polling$.next({})), skip(1)); const httpPolling$ = concat(httpRequest$, rePolling$); return polling$.pipe(switchMap(() => httpPolling$)); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy1wb2xsaW5nLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJpZm8vcnhqcy1wb2xsaW5nLyIsInNvdXJjZXMiOlsibGliL3J4anMtcG9sbGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxZQUE2QixFQUFFLE9BQU8sR0FBRyxDQUFDO0lBQzFFLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzVCLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFDZCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUM1QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1IsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbmNhdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBza2lwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBQb2xsaW5nIHdoZW4gZGF0YSBpcyByZXNvbHZlZFxuICogQHBhcmFtIGh0dHBSZXF1ZXN0JCBhbnkgaHR0cCByZXF1ZXN0LlxuICogQHBhcmFtIGRlbGF5TXMgZGVsYXkgaW4gbXNcbiAqXG4gKiBJbnNwaXJlIGJ5IGh0dHBzOi8vYmxvZy5zdHJvbmdicmV3LmlvL3J4anMtcG9sbGluZy9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBvbGxpbmdPblJlc29sdmVkKGh0dHBSZXF1ZXN0JDogT2JzZXJ2YWJsZTxhbnk+LCBkZWxheU1zID0gMCk6IE9ic2VydmFibGU8YW55PiB7XG4gIGNvbnN0IHBvbGxpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG4gIGNvbnN0IHJlUG9sbGluZyQgPSBvZignJykucGlwZShcbiAgICBkZWxheShkZWxheU1zKSxcbiAgICB0YXAoKCkgPT4gcG9sbGluZyQubmV4dCh7fSkpLFxuICAgIHNraXAoMSlcbiAgKTtcbiAgY29uc3QgaHR0cFBvbGxpbmckID0gY29uY2F0KGh0dHBSZXF1ZXN0JCwgcmVQb2xsaW5nJCk7XG4gIHJldHVybiBwb2xsaW5nJC5waXBlKHN3aXRjaE1hcCgoKSA9PiBodHRwUG9sbGluZyQpKTtcbn1cbiJdfQ==