我有一个动态创建的可观察对象数组(它向后端发出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 >>>>>>>>
我该怎么做?
答案 0 :(得分:0)
将数组简化为一个大的switchMap
observables.reduce((o1$,o2$) => o1$.pipe(switchMap(o1 => o2$));
订阅时,它们将一个接一个地运行。