如何顺序执行可观察对象数组?

时间:2018-09-20 22:46:24

标签: angular rxjs

我有一个动态创建的可观察对象数组(它向后端发出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 :(得分:0)

将数组简化为一个大的switchMap

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

订阅时,它们将一个接一个地运行。