switchMapTo
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
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.
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));