W3cubDocs

/RxJS

switchMapTo

function stable

Projects each source value to the same Observable which is flattened multiple times with switchMap in the output Observable.

switchMapTo<T, I, R>(innerObservable: ObservableInput<I>, resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, I | R>

Parameters

innerObservable

An Observable to replace each value from the source Observable.

resultSelector

Optional. Default is undefined.

Type: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R.

Returns

OperatorFunction<T, I | R>: An Observable that emits items from the given innerObservable (and optionally transformed through the deprecated resultSelector) every time a value is emitted on the source Observable, and taking only the values from the most recently projected inner Observable.

Description

It's like switchMap, but maps each value always to the same inner Observable.

switchMapTo marble diagram

Maps each source value to the given Observable innerObservable regardless of the source value, and then flattens those resulting Observables into one single Observable, which is the output Observable. The output Observables emits values only from the most recently emitted instance of innerObservable.

Example

Rerun an interval Observable on every click event

import { fromEvent, interval } from 'rxjs';
import { switchMapTo } from 'rxjs/operators';

const clicks = fromEvent(document, 'click');
const result = clicks.pipe(switchMapTo(interval(1000)));
result.subscribe(x => console.log(x));

Overloads

switchMapTo(observable: ObservableInput<R>): OperatorFunction<any, R>

Parameters

observable

Type: ObservableInput.

Returns

OperatorFunction<any, R>

switchMapTo(observable: ObservableInput<R>, resultSelector: undefined): OperatorFunction<T, R>

Parameters

observable

Type: ObservableInput.

resultSelector

Type: undefined.

Returns

OperatorFunction<T, R>

switchMapTo(observable: ObservableInput<I>, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>

Parameters

observable

Type: ObservableInput.

resultSelector

Type: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R.

Returns

OperatorFunction<T, R>

See Also

© 2015–2018 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/switchMapTo