rxjs / 7.5.5 / api / operators / mergewith.html /

mergeWith

function stable operator

Merge the values from all observables to a single observable result.

mergeWith<T, A extends readonly, unknown>()

Parameters

There are no parameters.

Description

Creates an observable, that when subscribed to, subscribes to the source observable, and all other sources provided as arguments. All values from every source are emitted from the resulting subscription.

When all sources complete, the resulting observable will complete.

When any source errors, the resulting observable will error.

Example

Joining all outputs from multiple user input event streams

import { fromEvent, map, mergeWith } from 'rxjs';

const clicks$ = fromEvent(document, 'click').pipe(map(() => 'click'));
const mousemoves$ = fromEvent(document, 'mousemove').pipe(map(() => 'mousemove'));
const dblclicks$ = fromEvent(document, 'dblclick').pipe(map(() => 'dblclick'));

mousemoves$
  .pipe(mergeWith(clicks$, dblclicks$))
  .subscribe(x => console.log(x));

// result (assuming user interactions)
// 'mousemove'
// 'mousemove'
// 'mousemove'
// 'click'
// 'click'
// 'dblclick'

See Also

© 2015–2022 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/mergeWith