Как выполнить массив наблюдаемых последовательно? - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть динамически создаваемый массив наблюдаемых (которые делают http-запросы к бэкэнду).Что-то вроде:

let observables: Observable<any>[] = [ $obs1, $obs2 ];

if(someCondition)
  observables.push($obs3);

if(someOtherCondition)
  observables.push($obs4);

 forkJoin(observables).subscribe();

Таким образом, наблюдаемые выполняются параллельно, как:

$obs1  >>>>>>
$obs2  >>>>>>>
$obs3  >>>>>>>>

Я хотел бы выполнить одно за другим, что-то вроде:

$obs1  >>>>>>
$obs2        >>>>>>>
$obs3               >>>>>>>>

Как я могу это сделать?

1 Ответ

0 голосов
/ 21 сентября 2018

Уменьшите массив до большой карты-переключателя

observables.reduce((o1$,o2$) => o1$.pipe(switchMap(o1 => o2$));

Когда вы подпишетесь, они будут запускаться одна за другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...