mergeAll
function
stable
Converts a higher-order Observable into a first-order Observable which concurrently delivers all values that are emitted on the inner Observables.
mergeAll<O extends ObservableInput<any>>(concurrent: number = Infinity): OperatorFunction<O, ObservedValueOf<O>>
Parameters
concurrent | Optional. Default is Maximum number of inner Observables being subscribed to concurrently. |
Returns
OperatorFunction<O, ObservedValueOf<O>>
: A function that returns an Observable that emits values coming from all the inner Observables emitted by the source Observable.
Description
Flattens an Observable-of-Observables.
mergeAll
subscribes to an Observable that emits Observables, also known as a higher-order Observable. Each time it observes one of these emitted inner Observables, it subscribes to that and delivers all the values from the inner Observable on the output Observable. The output Observable only completes once all inner Observables have completed. Any error delivered by a inner Observable will be immediately emitted on the output Observable.
Examples
Spawn a new interval Observable for each click event, and blend their outputs as one Observable
import { fromEvent, interval } from 'rxjs'; import { map, mergeAll } from 'rxjs/operators'; const clicks = fromEvent(document, 'click'); const higherOrder = clicks.pipe(map((ev) => interval(1000))); const firstOrder = higherOrder.pipe(mergeAll()); firstOrder.subscribe(x => console.log(x));
Count from 0 to 9 every second for each click, but only allow 2 concurrent timers
import { fromEvent, interval } from 'rxjs'; import { take, map, mergeAll } from 'rxjs/operators'; const clicks = fromEvent(document, 'click'); const higherOrder = clicks.pipe( map((ev) => interval(1000).pipe(take(10))), ); const firstOrder = higherOrder.pipe(mergeAll(2)); firstOrder.subscribe(x => console.log(x));
See Also
© 2015–2021 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/mergeAll