BACK
ПрактикаInterview: retry({ delay })
ПРАКТИКА · 59 · 練

Interview: retry({ delay })

Повторите flaky API с конфигом retry и delay через timer(0).

  1. Решите задачу в редакторе без длинной теории.
  2. Запустите проверку и сравните вывод с ожидаемым.
  3. Если застряли, откройте решение и перенесите подход в свой код.
Решение spoiler · click to reveal
const { defer, throwError, of, retry, timer } = Rx;

let attempt = 0;
const api$ = defer(() => {
  attempt += 1;
  return attempt < 3 ? throwError(() => new Error('fail')) : of('ok-' + attempt);
});

const result$ = api$.pipe(
  retry({ count: 2, delay: () => timer(0) })
);

result$.subscribe(value => console.log(value));
script.ts // TypeScript
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...