expand
Proyecta recursivamente cada valor de la fuente a un Observable que se fusiona con el Observable resultante
Descripción
Es similar a mergeMap, pero aplica la función de proyección a cada valor de la fuente además de a cada valor de salida. Es recursivo.

Retorna un Observable que aplica una función a cada elemento emitido por el Observable fuente, donde dicha función retorna otro Observable, y fusiona los Observables resultantes, emitiendo el resultado de esta fusión. expand reemitirá cada valor de la fuente en el Observable resultante.
Entonces, cada valor de salida se le proporciona a la función de proyección, que retorna un Observable interno que se fusiona en el Observable resultante. Esos valores de salida resultantes de la proyección también se le proporcionan a la función project para producir nuevos valores de salida. Así es como expand se comporta de forma recursiva.
Ejemplos
Obtener los 3 números consecutivos a un número
import { of } from "rxjs";
import { expand, take } from "rxjs/operators";
const number$ = of(1);
number$
.pipe(
expand((val) => of(val + 1)),
take(4)
)
.subscribe(console.log);
// Salida: 1, 2, 3, 4Obtener una secuencia geométrica multiplicando el número introducido por dos
Ejemplo de la documentación oficial
Comienza a emitir como mucho diez potencias de dos, por cada click
Recursos adicionales
Last updated