Proyecta cada valor emitido por la fuente al mismo Observable, que se fusiona con el Observable resultante
Signatura
Firma
mergeMapTo<T, R, O extends ObservableInput<any>>(innerObservable: O, resultSelector?: number | ((outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R), concurrent: number = Number.POSITIVE_INFINITY): OperatorFunction<T, ObservedValueOf<O> | R>
Parámetros
Opcional. El valor por defecto es Number.POSITIVE_INFINITY. El máximo número de Observables internos a los que se suscribe de forma concurrente.
Retorna
OperatorFunction<T, ObservedValueOf<O> | R>: Un Observable que emite elementos del Observable innerObservable proporcionado.
Descripción
Es como mergeMap, pero siempre proyecta los valores al mismo Observable interno.
Proyecta cada emisión de la fuente al Observable innerObservable dado, independientemente del valor de dicha emisión, y fusiona los Observables internos resultantes en un solo Observable: el Observable resultante.
Ejemplos
Proyectar cada click al mismo Observable interno, que emite un mensaje
import { fromEvent, of } from"rxjs";import { mergeMapTo } from"rxjs/operators";constclick$=fromEvent<MouseEvent>(document,"click");click$.pipe(mergeMapTo(of("Hola, has hecho click :D"))).subscribe(console.log);// Salida: (click) 'Hola, has hecho click :D' (click) 'Hola, has hecho click :D'...
Cada 3 segundos, obtener los títulos de las 3 primeras películas de Ghibli
import { mergeMapTo, map, mergeAll, take } from"rxjs/operators";import { interval } from"rxjs";import { ajax } from"rxjs/ajax";constsecond$=interval(3000).pipe(take(5));functiongetGhibliFilmTitles() {returnajax.getJSON(`https://ghibliapi.herokuapp.com/films/`).pipe(mergeAll(),map(({ title }) => title),take(3) );}second$.pipe(mergeMapTo(getGhibliFilmTitles())).subscribe(console.log);// Salida: (3s) Castle in the Sky, Grave of the Fireflies, My Neighbor Totoro (3s) Castle in the Sky, Grave of the Fireflies, My Neighbor Totoro...
Ejemplo de la documentación oficial
Por cada evento click, empezar un intervalo Observable de 1 segundo