forkJoin
Acepta un Array de Observables o un diccionario de Observables, y retorna otro Observable que emite o bien un array de valores en el mismo orden que el array proporcionado, o un diccionario de valores
Last updated
Acepta un Array de Observables o un diccionario de Observables, y retorna otro Observable que emite o bien un array de valores en el mismo orden que el array proporcionado, o un diccionario de valores
Last updated
Espera a que todos los Observables se completen, y combina sus últimas emisiones.
forkJoin
es un operador que recibe un array de Observables o un diccionario de Observables como parámetro de entrada. Si no se proporciona ningún Observable de entrada, el Observable resultante se completa inmediatamente.
forkJoin
espera a que todos los Observables de entrada se completen, y entonces emite un array u objeto con la última emisión de cada uno de estos Observables.
Si se le proporciona un array de n Observables a forkJoin
, el array resultante contendrá n valores, donde el primer valor es la última emisión del primer Observable, el segundo valor es la última emisión del segundo Observable, y así sucesivamente.
Si se le proporciona un diccionario de Observables a forkJoin
el objeto resultante tendrá las mismas claves que el diccionario. Los últimos valores que se hayan emitido por cada Observable de entrada estarán situados bajo la clave correspondiente.
forkJoin
emite una única vez, y se completará justo después. Si se necesita emitir valores combinados durante el ciclo de vida de los Observables de entrada, se recomienza utilizar combineLatest o zip.
Para que el array resultante tenga la misma longitud que el número de Observables de entrada, cuando alguno de dichos Observables se complete sin emitir ningún valor, forkJoin
también se completará y no emitirá ningún valor, aunque ya tenga recogidos algunos valores de los demás Observables. Además, si hay algún Observable que nunca llegue a completarse, forkJoin
tampoco se completará, a no ser que, en cualquier momento, alguno de los demás Observables de entrada se complete sin emitir ningún valor, lo que nos trae de vuelta al caso anterior. Como norma general, para que forkJoin
pueda emitir un valor, todos los Observables de entrada tienen que emitir como mínimo un valor, y completarse.
Si alguno de los Observables de entrada lanza un error, forkJoin
también lo hará, y se cancelará la suscripción a todos los demás Observables de entrada.
Opcionalmente, forkJoin
recibe una función de proyección, que se llamará con los valores que normalmente se emitirían en el array resultante. El resultado de la función de proyección, sea cual sea, se emitirá en el Observable resultante. Debido a esto, se puede considerar a la función de proyección como una función que recoge todos los argumentos que recibe en un array. La función de proyección se llamará solo cuando el Observable resultante tenga que emitir un valor.
Combinar la última emisión de dos Observables distintos
Combinar la última emisión de dos Observables distintos, contenidos en un diccionario de datos
Si alguno de los Observables de entrada lanza un error, el Observable resultante lanzará un error inmediatamente, y el flujo se terminará
Si se utiliza el operador catchError
en el Observable de entrada que lanza el error, el Observable resultante se completará sin problemas
Usar forkJoin con un diccionario de Observables de entrada
Usar forkJoin con un array de Observables de entrada