Skip to main content
Module

x/rxjs/mod.ts>mergeAll

Deno port of RXJS
Latest
function mergeAll
import { mergeAll } from "https://deno.land/x/rxjs@v1.0.2/mod.ts";

Converts a higher-order Observable into a first-order Observable which concurrently delivers all values that are emitted on the inner Observables.

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, map, interval, mergeAll } from 'rxjs';

const clicks = fromEvent(document, 'click');
const higherOrder = clicks.pipe(map(() => 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, map, interval, take, mergeAll } from 'rxjs';

const clicks = fromEvent(document, 'click');
const higherOrder = clicks.pipe(
  map(() => interval(1000).pipe(take(10)))
);
const firstOrder = higherOrder.pipe(mergeAll(2));

firstOrder.subscribe(x => console.log(x));

Parameters

optional
concurrent: number = [UNSUPPORTED]

Returns

A function that returns an Observable that emits values coming from all the inner Observables emitted by the source Observable.