使用 forkJoin 操作符代替 merge 操作符。forkJoin 操作符可以将所有的 Observables 视为一个整体进行订阅和发出值,而不像 merge 操作符那样独立处理每个 Observable。下面是一个使用 forkJoin 的示例代码:
import { forkJoin, of } from 'rxjs';
import { switchMap } from 'rxjs/operators';
const observable1$ = of('Observable 1');
const observable2$ = of('Observable 2');
const observable3$ = of('Observable 3');
const result$ = observable1$.pipe(
switchMap(() => forkJoin(observable2$, observable3$))
);
result$.subscribe(values => {
console.log(values);
// Output: ['Observable 2', 'Observable 3']
});
在这个示例中,我们使用 forkJoin 操作符来组合 observable2$ 和 observable3$,并将其作为一个整体进行订阅。这样就可以确保所有内部的 Observables 都得到触发。