BACK
ПрактикаInterview: retry() flaky API
ПРАКТИКА · 32 · 練

Interview: retry() flaky API

Источник падает первые две попытки. Через retry(2) получите ok-3.

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

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

const result$ = api$.pipe(
  retry(2)
);

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