Estuve resolviendo un error bastante desagradable donde finalmente me di cuenta de que fue causado por la mutación de un objeto anidado que se transmitió a la corriente de observables y realmente me sorprendió porque pensaba que los observables y su carga útil son inmutables. para entenderlo mejor, he reproducido el escenario en el siguiente CodeSandBox (consulte los registros de la consola).
¿Es un comportamiento esperado cuando se trabaja con observables rxjs?
En su código, ambas secuencias hacen referencia al mismo objeto de of(obj) , es por eso que observó la mutación inesperada.
Para hacer que los datos sean inmutables, objDownStream1$ necesita devolver una copia de obj en su lugar.
const objDownStream1$ = intervalObj$.pipe( map((obj) => { return {...obj, nestedObj: { nestedProp: "downStream1Nested" } } }) );