BACK
ПрактикаReal-life: forkJoin() с fallback внутри поля
ПРАКТИКА · 65 · 練

Real-life: forkJoin() с fallback внутри поля

Один запрос падает. Перехватите ошибку внутри поля profile$, чтобы forkJoin всё равно завершился.

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

const user$ = of('profile');
const profile$ = throwError(() => new Error('missing')).pipe(
  catchError(() => of('guest'))
);

const result$ = forkJoin({ user: user$, profile: profile$ }).pipe(
  map(({ user, profile }) => user + ':' + profile)
);

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