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.
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>
|