raceWith

function stable

Creates an Observable that mirrors the first source Observable to emit a next, error or complete notification from the combination of the Observable to which the operator is applied and supplied Observables.

raceWith<T, A extends readonly unknown[]>(...otherSources: any[]): OperatorFunction<T, T | A[number]>

Parameters

otherSources

Sources used to race for which Observable emits first.

Returns

OperatorFunction<T, T | A[number]>: A function that returns an Observable that mirrors the output of the first Observable to emit an item.

Description

Example

import { interval } from 'rxjs';
import { mapTo, raceWith } from 'rxjs/operators';

const obs1 = interval(1000).pipe(mapTo('fast one'));
const obs2 = interval(3000).pipe(mapTo('medium one'));
const obs3 = interval(5000).pipe(mapTo('slow one'));

obs2.pipe(
  raceWith(obs3, obs1)
).subscribe(
  winner => console.log(winner)
);

// Outputs
// a series of 'fast one'

© 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/raceWith