switchMapTo<T, I, R>(innerObservable: any, resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, I | R>
innerObservable | Un Observable que reemplaza cada valor emitido por el Observable fuente. |
resultSelector | Opcional. El valor por defecto es undefined .
Tipo: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R . |
OperatorFunction<T, I | R>
: Un Observable que emite elementos del innerObservable
cada vez que el Observable fuente emite un valor. Se obtienen los valores del Observable interno más reciente.
Es como switchMap
, pero siempre proyecta los valores sobre el mismo Observable interno.
Proyecta cada emisión de la fuente al Observable innerObservable
proporcionado, independientemente del valor de la emisión, y posteriormente 'aplasta' los Observables internos resultantes en un solo Observable, el Observable resultante. El Observable resultante solo emite valores de la instancia más reciente de innerObservable
.
Proyectar cada click al mismo Observable interno, que emite un mensaje
Si antes de que pasen dos segundos se vuelve a hacer click, switchMapTo cancelará la suscripción al Observable interno antiguo y se suscribirá al nuevo. Esto quiere decir que, si no se deja que pasen dos segundos sin hacer ningún click, nunca se verá el mensaje del Observable interno.
import { fromEvent, of } from "rxjs";
import { delay, switchMapTo } from "rxjs/operators";
const click$ = fromEvent<MouseEvent>(document, "click");
const message$ = of("Hola, has hecho click :D").pipe(delay(2000));
click$.pipe(switchMapTo(message$)).subscribe(console.log);
// Salida: (click) (2s) 'Hola, has hecho click :D' (click) (1s) (click) (2s) 'Hola, has hecho click :D'...
Cada 3 segundos, obtener los títulos de las 3 primeras películas de Ghibli
Reinicia un Observable intervalo con cada click
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));
switchMapTo(observable: any): OperatorFunction<any, R>
observable | Tipo: any . |
OperatorFunction<any, R>
switchMapTo(observable: any, resultSelector: undefined): OperatorFunction<T, R>
observable | Tipo: any . |
resultSelector | Tipo: undefined . |
OperatorFunction<T, R>
switchMapTo(observable: any, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>
observable | Tipo: any . |
resultSelector | Tipo: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R . |
OperatorFunction<T, R>
Documentación oficial en inglés